SQL Server 에서 ISNULL 을 사용 하여 빈 값 판단 조 회 를 실행 합 니 다.

1404 단어 SQLServerISNULL
다음 조회 가 있 습 니 다.

select isnull(lastchanged,'') as lastchanged from vhhostlist where s_comment='test202'
원래 ISNULL 함 수 는 하나의 매개 변수 만 있 습 니 다.이 매개 변수의 값 이 NULL 인지 아 닌 지 를 판단 하고 NULL 이면 TRUE 로 돌아 갑 니 다.그렇지 않 으 면 FALSE 로 돌아 갑 니 다.
그러나 SQLServer 의 검색 어 에서 isnull 은 두 개의 매개 변 수 를 필요 로 합 니 다.매개 변수 1 이 NULL 이면 매개 변수 2 를 isnull 함수 의 반환 값 으로 한 다 는 뜻 입 니 다.
즉,위 에서 조회 한 의 미 는 vhhostlist 표 의 s 를 조회 하 는 것 이다.comment='test 202'줄 lastchanged 필드 의 값 입 니 다.NULL 이면 빈 문자열 을 되 돌려 줍 니 다.
이전에 이것 을 몰 랐 을 때 이런 상황 을 만 났 던 것 을 기억 합 니 다.주문서 의 한 필드 는 status 이 고 주문 서 를 제출 할 때 status 는 NULL 입 니 다.프로그램 에서 다음 과 같은 판단 을 해 야 합 니 다.NULL 일 때 심사 하 는 하이퍼링크 를 표시 합 니 다.비어 있 지 않 을 때 심 사 된 문자열 을 표시 합 니 다.당시 의 프로그램 은 이렇게 썼 다.

if rs("status")<>"" then
       response.write "<span style='color:red;'> </span>"
else
       response.write "<a href=check.asp?id=" & rs("id") & "> </a>"
end if
사실 이러한 판단 은 신중 하지 못 한 것 이다.rs(status)<>"는 rs(status)가 이미 심사 한 것 과 같 지 않다.rs(status)<>"이외 의 상황 이 미 심 상태 임 을 나타 내지 않 습 니 다.
가장 합 리 적 인 것 은 isnull(status,')as status 로 status 를 찾 는 것 이다.만약 rs(status)="는 재심 하지 않 았 다 는 것 을 나타 내 는데 이것 은 반드시 성립 된다!

좋은 웹페이지 즐겨찾기