안녕하세요. Decode함수에서 와일드 카드를 사용할수 있을까요?? 0 2 3,137

by ReLight [Oracle 기초] DECODE [2014.10.10 14:39:22]


안녕하세요.. DB공부를 하고있는 학생입니다..

DECODE 함수관련해서 여기저기 막 찾아보다가 이런 커뮤니티싸이트가 있어서 정말 감사하게 생각합니다..^^

 

다름아니라 DB공부를 하는중에 DECODE라는 함수를 알게 되었는데요.

DECODE안에 검색조건에 와일드카드를 넣을수는 없는건가 해서 질문을 올려봅니다.

 

예를들어서  

A 테이블에  A1 컬럼이 있고,

A1컬럼에는 'aaaaa', 'abbbb', 'abccc', 'abcdd', 'abcde'

이렇게 데이터가 있다고 가정하면요.

 

DECODE(A1, 'abc%', 'Y', 'N')

이런식으로 abc로 시작하는거면 Y, abc로 시작하는게 아니면 N

으로 나오게 하려는데요..

와일드카드로 인식이 안되는거 같더라구요..

 

혹시 이렇게 하는게 아닌건가요??ㅜ

도와 주셨으면 합니다.

by ReLight [2014.10.10 14:48:02]

자답입니다. 와일드카드를 쓸필요가 없더라구요.

Substr사용해서 처리를 했습니다..^^

 

DECODE( Substr(A1, 0, 3) , 'abc', 'Y', 'N')

이렇게 하니까 되네요 ^^


by 마농 [2014.10.10 14:56:47]
SELECT a1
     , CASE WHEN a1 LIKE 'abc%' THEN 'Y' ELSE 'N' END yn1
     , DECODE(SUBSTR(a1, 1, 3), 'abc', 'Y', 'N') yn2
     , DECODE(INSTR(a1, 'abc'), 1, 'Y', 'N') yn3
  FROM a
;

 

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