와일드카드 문자 | 설명 | 예 |
---|---|---|
% | 0개 이상의 문자를 가진 문자열 | WHERE title LIKE '%computer%'는 책 제목에 'computer' 단어가 있는 모든 책 제목을 찾습니다. |
_ (밑줄) | 단일 문자 | WHERE au_fname LIKE '_ean'은 ean으로 끝나는 모든 4문자 이름을 찾습니다(Dean, Sean 등). |
[ ] | 지정된 범위([a-f]) 또는 집합([abcdef])에 있는 단일 문자 | WHERE au_lname LIKE '[C-P]arsen'은 arsen으로 끝나고 C와 P 사이의 단일 문자로 시작하는 저자의 성을 찾습니다. 예를 들면 Carsen, Larsen, Karsen 등입니다. |
[^] | 지정된 범위([^a-f]) 또는 집합([^abcdef])에 없는 단일 문자 | WHERE au_lname LIKE 'de[^l]%'은 de로 시작하고 이어지는 문자가 l이 아닌 저자의 성을 모두 찾습니다. |
기호 | 의미 |
---|---|
LIKE '5[%]' | 5% |
LIKE '[_]n' | _n |
LIKE '[a-cdf]' | a, b, c, d 또는 f |
LIKE '[-acdf]' | -, a, c, d 또는 f |
LIKE '[ [ ]' | [ |
LIKE ']' | ] |
LIKE 'abc[_]d%' | abc_d 및 abc_de |
LIKE 'abc[def]' | abcd, abce 및 abcf |
-- MSSQL 2005의 AdventureWorks 를 사용
USE AdventureWorks;
GO
-- dm으로 시작하는 Name 모두 검색
SELECT Name
FROM sys.system_views
WHERE Name LIKE 'dm%'
-- []와일드 카드 문자를 사용하여 여러 조건을 만족하는 데이타 검색
-- LastName이 A, J로 시작하는 데이타 검색
SELECT ContactID, FirstName, LastName
FROM Person.Contact
WHERE LastName LIKE '[AJ]%';
ESCAPE절 사용하여 와일드카드 문자를 포함하는 데이터 조회하기
데이타거 100% 라는 값 자체로 입력되어 있을때 '100%'가 들어 있는 데이터를 검색하고싶을때.
USE tempdb;
GO
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'mytbl2')
DROP TABLE mytbl2;
GO
USE tempdb;
GO
CREATE TABLE mytbl2
(
c1 sysname
);
GO
INSERT mytbl2 VALUES ('Discount is 10-15% off');
INSERT mytbl2 VALUES ('Discount is .10-.15 off');
GO
SELECT c1
FROM mytbl2
WHERE c1 LIKE '%10-15!% off%' ESCAPE '!';
GO
참고 : http://msdn2.microsoft.com/ko-kr/library/ms179859.aspx
[출처] [MSSQL2005] LIKE 검색시 [ ] 와일드카드사용하기|작성자 필립박
'데이터베이스 > SQL Server' 카테고리의 다른 글
[MSSQL2005] 스키마테이블을 이용하여 테이블 정보 알아내기 (0) | 2008.04.28 |
---|---|
특정 기간(datetime형식)을 주어 조회할 경우 주의 (0) | 2008.04.28 |
[MSSQL2005] 순위함수 (ROW_NUMBER, RANK, DENSE_RANK, NTILE) (0) | 2008.04.28 |
DB별 제약 조건을 쿼리로 뽑기 (0) | 2008.04.28 |
다중 입력을 Open xml로 처리하여 보자 (0) | 2008.04.28 |