대소문자 구별 질문이요 0 2 433

by bigjj [2020.06.18 19:41:09]


서울, 부산에서 온 어떤 직원이  어느 street 에 사는지 알고 싶은데 검색시에 "street" 은 들어가는데 " street" 은 들어가면 안되거든요.  street 검색 했을때 Street 이나 sTreet 이렇게 쓰여진거 대소문자 구별 없이 검색은 되는데 " street"  처럼 street 앞에 띄어쓰기 된 곳은 검색 안되게 하는 방법이 뭐가 있나요? 예를들면

where street like '%street%' 이렇게 하면 대소문자 구별없이 street 만 들어가면 검색이 다 되는거 같은데 맞나요? 그리고 street 앞에 space 있으면 검색에서 제외시키는 법  알고싶어요 ㅜ

by ㅇㅇ준 [2020.06.18 21:23:57]
WITH TEXT_LIST AS (SELECT 'AAA BBB' TEXT FROM DUAL UNION ALL
                   SELECT 'AAABBB' FROM DUAL 
                  )
SELECT A.*
FROM A A
WHERE TEXT LIKE '%BBB%'
AND SUBSTRB(TEXT,INSTRB(TEXT,'BBB')-1,1) <> ' ';

 

'%BBB%' 하면 대문자 BBB 가 포함된 문자열만 검색됩니다. 대소문자 구분없이 검색이 되게 하시려면

upper or lower를 이용하셔야하는데 인덱스 구성 컬럼을 변환하여 검색할 경우 인덱스를 타지않을 수 있으니 참고하세요


by 마농 [2020.06.22 07:53:07]

Oracle 에서는 대소문자 구별 하지만.
MSSQL 에서는 대소문자 구별 안합니다.
공백 없이 검색하려면? LIKE 검색 대신 이퀄(=) 검색 하세요.

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