안녕하세요 Where절 Case문 사용 질문드립니다. 0 3 821

by 빠바 [2016.09.28 15:12:09]


제가 원하는 조건은 이렇습니다.

 

고객사번호가 컬럼명이고

검색 조건에

10100 이렇게 값이 들어옵니다.

만약 5번째자리가 0으로 끝나면 

1010 || '%' 해서 Like 검색을 하고

 

5번째 자리가 0으로 끝나지않고 10101 이렇게 끝나면

10101을 검색하는 겁니다.

 

Where 조건에 가능할까요?

 

생각해본 쿼리는

 

WHERE VENDORID CASE 5번째자리가 0이면 THEN 1010 || '%' ELSE 10101 END

 

이렇게인데 LIKE와 =을 어디다 써야할지가 문제입니다.

 

 

 

 

by 빠바 [2016.09.28 15:19:40]

안녕하세요 해결했습니다.

AND VENDORID LIKE CASE WHEN SUBSTR('10100', 5, 1) = '0'
                       THEN SUBSTR('10100', 1, 4) || '%'
                       ELSE '10100' END

 

이런식으로 만들어봤습니다 감사합니다.


by 마농 [2016.09.28 15:46:39]
 WHERE vendorid LIKE REGEXP_REPLACE(:v_vendorid, '0$', '%')

 


by 빠바 [2016.09.29 11:57:41]

더 단순한방법이있었네요 감사드립니다!.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입