ORACLE LIKE 질문입니다. 0 3 1,388

by 이티 [SQL Query] [2014.07.16 10:51:05]


예를 들어서 다음과 같은 데이터가 있다고 가정하겠습니다.

WITH T AS
(
    SELECT 'ADA_AAA' AS D FROM DUAL UNION ALL
    SELECT 'ADB_AAA' AS D FROM DUAL UNION ALL
    SELECT 'AD_AAA' AS D FROM DUAL UNION ALL
    SELECT 'ADC_AAA' AS D FROM DUAL UNION ALL
    SELECT 'ADD_AAA' AS D FROM DUAL
)
SELECT * FROM t WHERE D LIKE 'AD_%';

위 경우 조건으로 검색시에 'AD' 로 시작하는 데이터검색시 위 데이터가 모두 해당되어 다 나와버립니다.

이때 'AD_' 로만 시작하는 데이터를 검색하려면 어떻게 해야 하나요?

추출대상이 아닌 데이터를 NOT LIKE 는 안될것 같습니다. 위 데이터가 N개라고 가정을 한 상태입니다. 알려주시면 감사하겠습니다.

by 김치찌게 [2014.07.16 10:59:49]

WITH T AS
(
    SELECT 'ADA_AAA' AS D FROM DUAL UNION ALL
    SELECT 'ADB_AAA' AS D FROM DUAL UNION ALL
    SELECT 'AD_AAA' AS D FROM DUAL UNION ALL
    SELECT 'ADC_AAA' AS D FROM DUAL UNION ALL
    SELECT 'ADD_AAA' AS D FROM DUAL
)
SELECT * FROM t WHERE D LIKE 'AD/_%' escape '/';

 


by 이티 [2014.07.16 11:05:49]

아 감사합니다.. 몰랐네요 이스케이프 같은 구문이 있었는줄은..

검색해보니 관련자료가 많이 나오네요. 좋은 참고가 되었습니다.

덕분에 좋은 팁 학습하고 갑니다 ㅎㅎ 꾸벅(__)


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