2011-11-09 2 views
3

나는 어떻게 NULL을취급 NULL은

select s.comments + s.further_comments from dbo.samples s where id = 1234 

그러나 다음과 같은 SQL 쿼리를 변환합니까 한 값을 빈 문자열로 반환하거나 적어도이 문자열의 NULL이 아닌 값만 반환합니까?

감사

답변

6

이에 대한 ISNULL 또는 COALESCE를 사용할 수 있습니다. 이 두 방법하지만, 모든 의도와 목적에 대한 some differences, 그들이 가장 가능성이 적용되지 않습니다 있다는 것을

Returns the first nonnull expression among its arguments. 

SELECT ISNULL(s.comments, '') + ISNULL(s.further_comments, '') 
SELECT COALESCE(s.comments, '') + COALESCE(s.further_comments, '') 

ISNULL

Replaces NULL with the specified replacement value. 

COALESCE

당신의 상태.

  1. ISNULL (NULL, NULL은) - 오류를
  2. COALESCE (CAST (int)로 (NULL), NULL)을 던질 것인가 - -
  3. COALESCE (NULL, NULL)이 int이며 그 유효한 되돌 유착이
  4. 유착은 ANSI SQL 표준을 기반 파라미터들의 가변 개수 걸리는 반면 ISNULL가 독점 TSQL 함수 인 반면
  5. ISNULL 단지 2 매개 변수를 int로
,536,913,632 10
+0

nullable 인 열에 조인해야하는 경우에도 유용합니다. – Jerome