FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[4057] Re:COALESCE 값...
까막.윤창희 [ggamagui] 8839 읽음    2011-02-14 15:25
아폴론 님이 쓰신 글 :
: COALESCE 이 함수는 조회되는 필드가 널이면 지정한 값을 주어라..이런 함수인데요..
: 테스트 해 봤습니다..
:
: select
:   COALESCE(ad_bncd,'a') bncd,  //==> null
:   COALESCE(ad_tmcd,'a') tmcd,   //==> null
:   COALESCE(ad_sabn,'a') sabn   //==> null
:   from CLIENT                 
: where ad_clcd = 'A1001'
:
: 테이블과 필드는 존재하는 실제 입니다.  where 대입 값 'A1001'은 없는값입니다.
: 즉 널값이 조회 되겠지요..
: 그런데 널( COALESCE)이면 a 값을 나타내라..했는데..저것이 버릇없이  null 값을 나타내네요..쩝
:
: select
:   COALESCE(max(ad_bncd),'a') bncd,  //==> a
:   COALESCE(max(ad_tmcd),'a') tmcd,   //==> a
:   COALESCE(max(ad_sabn),'a') sabn   //==> a
:   from CLIENT                 
: where ad_clcd = 'A1001'
:
: 이러니..제대로 a 값을 나타 내네요..
: 누가 설명좀 해 주실래요?...ㅎㅎ

안녕하세요.
까막입니다.

첫번째 쿼리문에서 Where 조건값의 A1001 은 없다고 하셨죠?
그래서, NULL 을 반환합니다.
이 경우 Select 문에서 반환하는 값은 없는 것이죠.
그래서, Coalesce 명령 자체도 실행이 될 일이 없습니다.

두번째 쿼리문에서는 같은 조건에 Max 가 들어갔죠?
해당 조건값을 만족하는 결과셋에서 Max 가 뭔지 반환하라는 것이잖아요?
그런데, 조건에 일치하는 값이 없으므로 결과값으로 NULL 을 반환합니다.
이 경우 Select 문에서 반환하는 값은 NULL 입니다.
여기서 Coalesce 명령이 실행이 되면서 'a' 로 변환해서 나타냅니다.

결과값 자체가 없어서 NULL 이 반환되는 경우랑, 결과값이 NULL 인 경우는 다릅니다.



혼이 살아 있을까.... 대한민국.

+ -

관련 글 리스트
4055 COALESCE 값... 아폴론 3399 2011/02/10
4057     Re:COALESCE 값... 까막.윤창희 8839 2011/02/14
4060         Re:Re:COALESCE 값... 아폴론 2503 2011/02/15
4063             Re:Re:Re:COALESCE 값... 까막.윤창희 3003 2011/02/22
4064                 COALESCE 값... 아폴론 8388 2011/02/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.