2012-07-23 4 views
2

SQL 사례에서 NULL을 확인하는 올바른 방법은 무엇입니까? ISNULL 사용SQL 쿼리에서 NULL을 처리하는 중

1) ()는

WHEN (ISNULL(TABLE.COLUMN,0) > 0) THEN .... 

2) 사용하면 SQL의 경우에 널 값을 확인하고 싶은 경우

WHEN TABLE.COLUMN IS NOT NULL THEN .... 
+2

가능한 복제본 : http://stackoverflow.com/questions/3118213/isnull-vs-is-null –

답변

1

조건을 검사하는 경우 항상 'is null'을 사용하고 다른 값으로 값을 바꾸려면 isnull (a, b)를 사용하십시오. 다음을 확인하십시오. - http://msdn.microsoft.com/en-us/library/ms184325.aspx

마지막 라인을 특별히 읽으십시오!

1

번째 옳은 NULL IS ..

0

NON NULL 값을 확인하는 또 다른 방법입니다.

열의 길이가 1보다 크거나 같으면 1인지 확인하고 해당 값이 NON NULL 인 경우.

declare @emp table 
(
fname varchar(50) 
); 

INSERT into @emp VALUES('vishwanath'); 
INSERT into @emp VALUES('chetan'); 
INSERT into @emp VALUES(NULL); 
INSERT into @emp VALUES(NULL); 

SELECT * FROM @emp 
where len(fname)>=1 and fname<>''; 

Gives.. 

    fname 
-------------------------------------------------- 
    vishwanath 
    chetan 
+1

'INSERT INTO @emp VALUES ('')'- 이건 어때? NULL이 아니며 단지 비어 있습니다. – cairnz

+0

@cairnz 내 대답을 편집했습니다. –

0

열의 값이 0보다 크거나 null 인 경우 두 가지 모두 올바른 것입니다. SQL Server에서 이상한 null 동작에 대해 알고 싶다면 post을 참조하십시오. , null 값이 제로 주먹으로 변환 할 필요가 당신이 다음보다 큰 모든 값을해야 ISNULL(TABLE.COLUMN,0) > 0) 기능을 사용할 때

0

당신은 열이 널인지 확인하는 여부가 (COL)를 사용하는 것이 좋습니다 경우는

NULL IS 제로

이 기능은 다른 경우에 유용합니다. 음수 값뿐만 아니라 모든 null 값을 반환 할 것인지 말하십시오. 당신이 상수 값을 사용하고자 할 때

때문에 쿼리는이

select * from table isnull(col,-1)<0 
0

모두가 원인에 올로 다시 쓸 수

select * from table where col is null or col<0 

것, 그러나 ISNULL 도움이 될 수 있습니다 SUM, 평균 등을 계산하는 동안 해당 열에 NULL 대신 NULL을 입력하십시오.
예를 들어 다음을 확인할 수 있습니다. http : //www.w3schools.com/sql/sql_isnull.asp

이 기능으로 인해 개인적으로 계산 목적으로 ISNULL/COALESCE를 사용합니다.

관련 문제