728x90

와일드카드 문자 설명
% 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

+ Recent posts