[SQL] 매개 변수가 null 또는 비어있는 저장 프로 시저에 있는지 확인
SQL매개 변수가 null 또는 비어있는 저장 프로 시저에 있는지 확인
나는 매개 변수가 null하지만 난 ... 나는 이러한 매개 변수를 비어있는 그 여부를 확인하는 방법을 잘 모르겠습니다 여부를 확인하는 방법을 알고 난 이전의 매개 변수를 확인하려면 비어 있거나 널 (null) 다음으로 설정할 수 있습니다 아래와 같이
ALTER PROCEDURE [dbo].[GetSummary]
@PreviousStartDate NVARCHAR(50) ,
@PreviousEndDate NVARCHAR(50) ,
@CurrentStartDate NVARCHAR(50) ,
@CurrentEndDate NVARCHAR(50)
AS
BEGIN
IF(@PreviousStartDate IS NULL OR EMPTY)
SET @PreviousStartdate = '01/01/2010' for example..
나는 도움을 주셔서 감사합니다.
해결법
-
==============================
1.가끔과 같이 NULLIF를 사용하여 ...
가끔과 같이 NULLIF를 사용하여 ...
IF NULLIF(@PreviousStartDate, '') IS NULL
이 @Oded 및 @bluefeet, 단지 문체의 선호에 의해 제안 된 방법보다 더 나은 이유는 아마도 없습니다.
@ danihp의 방법은 정말 멋지다하지만 난 생각이 null 또는 비어있을 때 내 피곤 된 뇌는 유착에 갈 것입니다 :-)
-
==============================
2.여기에 일반적인 패턴은 다음과 같습니다
여기에 일반적인 패턴은 다음과 같습니다
IF(@PreviousStartDate IS NULL OR @PreviousStartDate = '')
'SQL 서버에서 빈 문자열입니다.
-
==============================
3.내가 사용 뭉쳤다 :
내가 사용 뭉쳤다 :
IF ( COALESCE( @PreviousStartDate, '' ) = '' ) ...
-
==============================
4.당신이 사용할 수있는:
당신이 사용할 수있는:
IF(@PreviousStartDate IS NULL OR @PreviousStartDate = '')
-
==============================
5.무엇 COALESCE 및 NULLIF를 조합 어떻습니까?
무엇 COALESCE 및 NULLIF를 조합 어떻습니까?
SET @PreviousStartDate = coalesce(nullif(@PreviousStartDate, ''), '01/01/2010')
-
==============================
6.또 다른 옵션 :
또 다른 옵션 :
IF ISNULL(@PreviousStartDate, '') = '' ...
http://weblogs.sqlteam.com/mladenp/archive/2007/06/13/60231.aspx에서이 식에 기초하여 함수를 참조
-
==============================
7.변수가 null 또는 빈 상태 (empty)의 사용이 있는지 확인하려면 :
변수가 null 또는 빈 상태 (empty)의 사용이 있는지 확인하려면 :
IF LEN(ISNULL(@var, '')) = 0
-
==============================
8.당신이 매개 변수를 사용하려면 옵션 그래서 그것을 사용합니다.
당신이 매개 변수를 사용하려면 옵션 그래서 그것을 사용합니다.
CREATE PROCEDURE uspGetAddress @City nvarchar(30) = NULL, @AddressLine1 nvarchar(60) = NULL AS SELECT * FROM AdventureWorks.Person.Address WHERE City = ISNULL(@City,City) AND AddressLine1 LIKE '%' + ISNULL(@AddressLine1 ,AddressLine1) + '%' GO
-
==============================
9.내가 너무 잘못된 날짜를 확인하는 것이 좋습니다 :
내가 너무 잘못된 날짜를 확인하는 것이 좋습니다 :
set @PreviousStartDate=case ISDATE(@PreviousStartDate) when 1 then @PreviousStartDate else '1/1/2010' end
-
==============================
10.당신이 "널, 빈 또는 공백"체크를 원하는 경우에, 당신은이 같은 LTRIM 및 RTRIM 불필요한 문자열 조작을 방지 할 수 있습니다.
당신이 "널, 빈 또는 공백"체크를 원하는 경우에, 당신은이 같은 LTRIM 및 RTRIM 불필요한 문자열 조작을 방지 할 수 있습니다.
IF COALESCE(PATINDEX('%[^ ]%', @parameter), 0) > 0 RAISERROR ...
-
==============================
11.이 시도 할 수 있습니다 : -
이 시도 할 수 있습니다 : -
IF NULLIF(ISNULL(@PreviousStartDate,''),'') IS NULL SET @PreviousStartdate = '01/01/2010'
from https://stackoverflow.com/questions/9855331/check-if-a-parameter-is-null-or-empty-in-a-stored-procedure by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] sqlite3를에서 DELETE CASCADE ON (0) | 2020.06.05 |
---|---|
[SQL] 데이터 정렬 충돌을 해결할 수 없습니다 (0) | 2020.06.05 |
[SQL] 많은 관계로 많은 EntityFramework 같은 표 (0) | 2020.06.05 |
[SQL] SQL 쿼리에서 카운트를 캡처 (0) | 2020.06.05 |
[SQL] MySQL은 트리거 - 변수에 SELECT 저장 (0) | 2020.06.05 |