검색 조건(Transact-SQL)
SQL Server 2008
검색 조건은 논리 연산자 AND, OR 및 NOT을 사용하여 하나 이상의 조건자를 결합한 것입니다.
< search_condition > ::=
{ [ NOT ] <predicate> | ( <search_condition> ) }
[ { AND | OR } [ NOT ] { <predicate> | ( <search_condition> ) } ]
[ ,...n ]
<predicate> ::=
{ expression { = | < > | ! = | > | > = | ! > | < | < = | ! < } expression
| string_expression [ NOT ] LIKE string_expression
[ ESCAPE 'escape_character' ]
| expression [ NOT ] BETWEEN expression AND expression
| expression IS [ NOT ] NULL
| CONTAINS
( { column | * } , '< contains_search_condition >' )
| FREETEXT ( { column | * } , 'freetext_string' )
| expression [ NOT ] IN ( subquery | expression [ ,...n ] )
| expression { = | < > | ! = | > | > = | ! > | < | < = | ! < }
{ ALL | SOME | ANY} ( subquery )
| EXISTS ( subquery ) }
논리 연산자의 우선 순위는 NOT(가장 높음), AND, OR 순입니다. 검색 조건에 괄호를 사용하면 이 순서를 무시할 수 있습니다. 논리 연산자의 계산 순서는 쿼리 최적화 프로그램에서 선택한 내용에 따라 달라질 수 있습니다. 논리 연산자가 논리 값을 계산하는 방법에 대한 자세한 내용은 AND(Transact-SQL), OR(Transact-SQL) 및 NOT(Transact-SQL)을 참조하십시오.
1. WHERE 절에 LIKE 및 ESCAPE 구문 사용
다음 예에서는 LargePhotoFileName 열에 green_ 문자가 있는 행을 검색하며 _이 와일드카드 문자이므로 ESCAPE 옵션을 사용합니다. ESCAPE 옵션을 지정하지 않으면 이 쿼리는 green 다음에 _ 문자가 아닌 다른 한 문자가 나오는 설명 값을 검색합니다.
USE AdventureWorks ; GO SELECT * FROM Production.ProductPhoto WHERE LargePhotoFileName LIKE '%greena_%' ESCAPE 'a' ;
2. WHERE 및 LIKE 구문에 유니코드 데이터 사용
다음 예에서는 WHERE 절을 사용하여 미국(US) 이외의 국가에서 Mn으로 시작하는 시에 있는 모든 기업의 우편 주소를 검색합니다.
USE AdventureWorks ;
GO
SELECT AddressLine1, AddressLine2, City, PostalCode, CountryRegionCode
FROM Person.Address AS a
JOIN Person.StateProvince AS s ON a.StateProvinceID = s.StateProvinceID
WHERE CountryRegionCode NOT IN ('US')
AND City LIKE N'Mn%' ;
