본문 바로가기
MS-SQL

조건절 LIKE 검색 조건(기호 인식)

by 호야호잇 2020. 7. 28.

 

 

WHERE LIKE 에서 사용하는 검색 조건에 대해 알아보자

 

SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE 'A%' SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '%A%' SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '_A%' SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '[ABC]%' SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '[A-D]%' SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '[^A]%'

 

다음과 같이 여러 검색 조건이 사용된다.

하나씩 알아보도록 하자.

 

1) A%

'A'로 시작하는 모든 문자열

 

2) '%A'%

'A'가 포함된 모든 문자열

 

3) '_A%'

두 번째 문자가 'A'인 모든 문자열

 

4) '[ABC]%'

첫 번째 문자가 'A' 또는 'B' 또는 'C'인 모든 문자열

 

5) '[A-D]%'

첫 번째 문자가 ABCD에 속하는 모든 문자열

 

6) '[^A]%'

첫 번째 문자가 'A'가 아닌 모든 문자열

 

 

 

 

조건절에서 사용하는 LIKE에서 특수문자를 실제 문자로 인식하도록 적용시켜보자

 

 

조건절 LIKE를 사용해서 문자열에 '%' 가 포함된 데이터를 찾으려고 한다.

내가 조회하고자하는 데이터는 '손%꽁쥐' 이 데이터다.

하지만 LIKE '%'로 조회한다면?

 

WITH TEST_A (NAME) AS ( SELECT '손%꽁쥐' UNION ALL SELECT '손꽁쥐' UNION ALL SELECT '손_꽁쥐' ) SELECT * FROM TEST_A WHERE NAME LIKE '%'

 

결과 데이터

 

 

결과는 다음과 같이 모든 데이터가 출력된다.

LIKE 문에서 %는 실제 문자가 아닌 검색 기능에 해당하는 문자로 쓰이기 때문이다.

 

 

 

 

 

 

 

그렇다면, %를 실제 문자로 인식시켜보자

 

 

방법1.

 

LIKE '%[문자][실제문자로인식시킬문자]%' ESCAPE '[문자]'

방법은 위와 같고, 이것을 실제로 적용시켜보자.

 

WITH TEST_A (NAME) AS ( SELECT '손%꽁쥐' UNION ALL SELECT '손꽁쥐' UNION ALL SELECT '손_꽁쥐' ) SELECT * FROM TEST_A WHERE NAME LIKE '%#%%' ESCAPE '#'

 

 

결과 데이터

 

여기서 '#'는 임의대로 아무 문자나 사용한 것이고, 이외에도 \, &, a 등 아무 문자나 사용해도 상관없다.

 

'MS-SQL' 카테고리의 다른 글

MS-SQL 부하쿼리  (0) 2020.09.23
[MSSQL] [DMV] 비용이 드는 쿼리 찾아내기  (0) 2020.03.20
MS-SQL 쿼리팁  (0) 2020.03.13
특정문자 (') 치환법  (0) 2019.12.13
SQL 팁  (0) 2019.11.21