대바깅
858
2018-09-04 09:24:33
4
877

MSSQL 쿼리문 관련 (CASE 문) 질문 드립니다.


현재 클라이언트에 표시해주기 위해 데이터를 내려주는 쿼리문중


ISNULL(RTRIM(휴대폰번호1)+ '-','')  + ISNULL(RTRIM(휴대폰번호2)+ '-','')  + ISNULL(RTRIM(휴대폰번호13),'') AS HPNO 


위와 같은 쿼리문이 있습니다.


그런데 위와같은 방법이 휴대폰번호1이나 휴대폰번호2, 휴대폰번호3의 데이터가 없는 상황에도 적용되어 현재 클라이언트 화면에 --- 이렇게만 표시되는 상황입니다.


그래서 저는 휴대폰번호1,휴대폰번호2,휴대폰번호3 중 한 컬럼이라도 데이터가 없다면 - 표시를 사용하지 않고 그냥 공백의 값을 리턴해주고 싶은데, CASE 문으로 어떻게 전개하면 될지 가르침 부탁드립니다.

감사합니다.

0
  • 답변 4

  • 최자바
    1k
    2018-09-04 09:31:25

    Declare 로 변수 선언하고 각 번호를 변수에 Set하세요

    그런다음 IF문으로 출력결과를 바꾸세요

  • mecca0515
    96
    2018-09-04 10:13:01
    CASE
        WHEN ISNULL(휴대폰번호1, '') = '' || ISNULL(휴대폰번호2, '') = '' || ISNULL(휴대폰번호3, '') = '' THEN ''
        ELSE RTRIM(휴대폰번호1) + '-' + RTRIM(휴대폰번호2) + '-' + RTRIM(휴대폰번호3)
    END AS HPNO


  • 대바깅
    858
    2018-09-04 12:23:27

    최자바 좋은 의견 감사드립니다.

     mecca0515 말씀해주신 방법으로 문제를 해결하였습니다. 감사합니다.

  • 인수봉
    13
    2018-09-04 12:54:17

    mssql 맞지요?...


    select ISNULL(RTRIM('010')+ '-','')  + ISNULL(RTRIM('1234')+ '-','')  + ISNULL(RTRIM('5678'),'') AS HPNO
    select ISNULL(RTRIM('')+ '-','')  + ISNULL(RTRIM('')+ '-','')  + ISNULL(RTRIM(''),'') AS HPNO
    select ISNULL(RTRIM(null)+ '-','')  + ISNULL(RTRIM('null')+ '-','')  + ISNULL(RTRIM('null'),'') AS HPNO


    declare @phone1 varchar(4), @phone2 varchar(4), @phone3 varchar(4)
    select @phone1 = '', @phone2 = '11', @phone3 = ''
    select case when (@phone1 = '' or @phone1 = '' or @phone1 = '')
      then ''
      else ISNULL(RTRIM(@phone1)+ '-','')  + ISNULL(RTRIM(@phone2)+ '-','')  + ISNULL(RTRIM(@phone3),'')
      end   AS HPNO




  • 로그인을 하시면 답변을 등록할 수 있습니다.