2011-10-03 11 views
0

그렇지 않은 경우 먼저 명령문을 스칼라 변수에 넣지 않고 CASE 또는 IF/THEN 식별자를 사용하여 SELECT 문을 전환하는 다른 방법이 있습니까?Where = Null을 사용하여 Where is Null을 대체 할 수 있습니까?

IS를 사용하지 않고이 형식을 지정하고 = 기호를 사용하면 작동하는 방법이 있습니까?

SELECT ID FROM TABLE WHERE ID = Null 
+1

NULL을 확인해야 할 때 'IS NULL'또는 'IS NOT NULL'은 ** 유효한 유일한 ** 방법입니다 –

+1

질문이 명확하지 않습니다. 자세한 정보를 제공해주십시오. –

+0

이것은 약간 추상적이며, 스키마와 일부 데이터는 원하는 출력으로 도움이 될 것입니다. – RedFilter

답변

5

아니요 NULL은 값이 아닙니다. NULL을 조건으로 생각하면 IS NULL 또는 IS NOT NULL이이 조건을 테스트합니다. 당신이 실행 조건에 의해 표현 된 실제 값, 또는 값의 부족을 테스트 할 수 있습니다이 예에서

WHERE 
    (X IS NULL OR X = @X) 

또는

먼저 명확한 조건
WHERE 
    (@X IS NULL OR X = @X) 

또는 시험 :

WHERE 
    CASE X 
     WHEN 1 THEN 
     WHEN 2 THEN 
     ELSE -- includes NULL 
    END = ... 

귀하의 질문은 추상적이어서 매우 정확한 답변을 드릴 수 없습니다.

예를 들어 NOT IN과 NULL에 문제가 있습니까? 그렇다면 NOT EXISTS를 사용하십시오.

+0

이것은 내가 필요한 .. 덕분에 일했습니다. –

관련 문제