필드값 체크후 카운터 하기 0 2 1,938

by stylebox [SQL Query] [2013.04.05 21:20:38]



테이블은 
id, user_id, email1, email2, email3, email4 이렇게 있구요

리스트에 

글번호    아이디         이메일
1               test    test@naver.com+2

이렇게 이메일부분에  email1을 보여주고 
email2, email3, email4에 값을 체크해서 
값이 있는 필드수를 카운터해서 리스트에 뿌려줄려구 합니다.

이런경우 어떤 쿼리를 이용하면 될까요..??
불금입니다. 다른 즐거운 불금 보내세요:)
by 아린 [2013.04.06 10:08:10]
NVL2 함수 사용하시면 되겠네요.


WITH t(id, user_id, email1, email2, email3, email4) AS(
SELECT '01', 'user1', 'user1@naver.com', 'user1@daum.net'
     , '', '' FROM dual UNION ALL 
SELECT '02', 'user2', 'user2@naver.com', 'user2@daum.net'
     , 'user2@korea.kr', '' FROM dual UNION ALL
SELECT '03', 'user2', 'user2@naver.com', ''
     , '', '' FROM dual
)
SELECT user_id
     , email1||DECODE(cnt, 0, '', '+'||cnt) email
     , email1||'+'||cnt email_1   
  FROM (SELECT user_id, email1
             , NVL2(email2,1,0)+NVL2(email3,1,0)+NVL2(email4,1,0) cnt
          FROM t
        )   

by 손님 [2013.04.06 10:22:25]
답변감사합니다:) 즐거운 주말보내세요~
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입