적용 대상: Microsoft Fabric의 Microsoft Fabric
SQL 데이터베이스
에 있는 Microsoft Fabric
Warehouse의 SQL Server
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System(PDW)
SQL 분석 엔드포인트
논리 연산AND
OR
자를 사용하는 하나 이상의 조건자 조합 및 NOT
.
구문
SQL Server, Azure SQL Database 및 Azure SQL Managed Instance에 대한 구문입니다.
<search_condition> ::=
MATCH (<graph_search_pattern>) | <search_condition_without_match> | <search_condition> AND <search_condition>
<search_condition_without_match> ::=
{ [ NOT ] <predicate> | ( <search_condition_without_match> ) }
[ { AND | OR } [ NOT ] { <predicate> | ( <search_condition_without_match> ) } ]
[ ...n ]
<predicate> ::=
{ expression { = | <> | != | > | >= | !> | < | <= | !< } expression
| string_expression [ NOT ] LIKE string_expression
[ ESCAPE 'escape_character' ]
| expression [ NOT ] BETWEEN expression AND expression
| expression IS [ NOT ] NULL
| expression IS [ NOT ] DISTINCT FROM
| CONTAINS
( { column | * } , '<contains_search_condition>' )
| FREETEXT ( { column | * } , 'freetext_string' )
| expression [ NOT ] IN ( subquery | expression [ , ...n ] )
| expression { = | < > | != | > | >= | ! > | < | <= | ! < }
{ ALL | SOME | ANY } ( subquery )
| EXISTS ( subquery ) }
<graph_search_pattern> ::=
{ <node_alias> {
{ <-( <edge_alias> )- }
| { -( <edge_alias> )-> }
<node_alias>
}
}
<node_alias> ::=
node_table_name | node_table_alias
<edge_alias> ::=
edge_table_name | edge_table_alias
Azure Synapse Analytics 및 병렬 데이터 웨어하우스에 대한 구문입니다.
< search_condition > ::=
{ [ NOT ] <predicate> | ( <search_condition> ) }
[ { AND | OR } [ NOT ] { <predicate> | ( <search_condition> ) } ]
[ ...n ]
<predicate> ::=
{ expression { = | <> | != | > | >= | < | <= } expression
| string_expression [ NOT ] LIKE string_expression
| expression [ NOT ] BETWEEN expression AND expression
| expression IS [ NOT ] NULL
| expression [ NOT ] IN (subquery | expression [ , ...n ] )
| expression [ NOT ] EXISTS (subquery)
}
인수
<search_condition>
문, 쿼리 식 또는 하위 쿼리에 대한 결과 집합에서 반환되는 행의 SELECT
조건을 지정합니다. UPDATE
문의 경우 업데이트할 행을 지정합니다. DELETE
문의 경우 삭제할 행을 지정합니다. Transact-SQL 문 검색 조건에 포함할 수 있는 조건자 수에는 제한이 없습니다.
<graph_search_pattern>
그래프 일치 패턴을 지정합니다. 이 절의 인수에 대한 자세한 내용은 MATCH를 참조하세요 .
NOT
조건자에서 지정한 부울 식을 부정합니다. 자세한 내용은 NOT을 참조하세요.
AND
두 조건을 결합하고 두 조건이 모두 있는 경우를 TRUE
평가합니다 TRUE
. 자세한 내용은 AND를 참조하세요.
또는
두 조건을 결합하고 두 조건 중 하나가 될 때 계산 TRUE
합니다 TRUE
. 자세한 내용은 OR을 참조하세요.
<predicate>
또는 FALSE
UNKNOWN
을 반환TRUE
하는 식입니다. 자세한 내용은 조건자를 참조 하세요.
expression
열 이름, 상수, 함수, 변수, 스칼라 하위 쿼리 또는 연산자 또는 하위 쿼리로 연결된 열 이름, 상수 및 함수의 조합을 지정합니다. 식에는 식도 포함될 CASE
수 있습니다.
유니코드가 아닌 문자열 상수 및 변수는 데이터베이스의 기본 데이터 정렬에 해당하는 코드 페이지를 사용합니다. 코드 페이지 변환은 유니코드가 아닌 문자 데이터를 사용하고 유니코드가 아닌 char, varchar 및 text 문자 데이터 형식을 참조할 때 발생할 수 있습니다. SQL Server는 해당 코드 페이지가 데이터베이스의 기본 데이터 정렬에 해당하는 코드 페이지와 다른 경우 유니코드가 아닌 문자열 상수 및 변수를 참조된 열의 데이터 정렬에 해당하거나 사용하여 COLLATE
지정한 코드 페이지로 변환합니다. 새 코드 페이지에서 찾을 수 없는 문자는 가장 적합한 매핑을 찾을 수 있거나 기본 대체 문자로 변환되는 경우 유사한 문자?
로 변환됩니다.
여러 코드 페이지를 사용하는 경우 문자 상수 앞에 대문 N
자를 접두사로 지정할 수 있으며 코드 페이지 변환을 방지하기 위해 유니코드 변수를 사용할 수 있습니다.
=
연산자
두 식 간의 같음을 테스트하는 데 사용되는 연산자입니다.
<>
연산자
두 식이 서로 같지 않은 상태를 테스트하는 데 사용되는 연산자입니다.
!=
연산자
두 식이 서로 같지 않은 상태를 테스트하는 데 사용되는 연산자입니다.
>
연산자
한 식이 다른 식보다 큰 상태를 테스트하는 데 사용되는 연산자입니다.
>=
연산자
한 식이 다른 식보다 크거나 같은 상태를 테스트하는 데 사용되는 연산자입니다.
!>
연산자
한 식이 다른 식보다 크지 않은 상태를 테스트하는 데 사용되는 연산자입니다.
<
연산자
한 식이 다른 식보다 작은 상태를 테스트하는 데 사용되는 연산자입니다.
<=
연산자
한 식이 다른 식보다 작거나 같은 상태를 테스트하는 데 사용되는 연산자입니다.
!<
연산자
한 식의 조건이 다른 식보다 작지 않은지 테스트하는 데 사용되는 연산자입니다.
string_expression
문자 및 와일드카드 문자의 문자열입니다.
[ NOT ] 같이
다음에 나오는 문자열이 패턴 일치로 사용됨을 나타냅니다. 자세한 내용은 LIKE를 참조하세요.
ESCAPE 'escape_ 문자'
와일드카드 문자의 기능을 하지 않고 문자열에서 와일드카드 문자를 검색할 수 있도록 합니다. escape_character는 특별한 용도를 나타내기 위해 와일드카드 문자 앞에 놓이는 문자입니다.
[ NOT ] 사이
값의 포함 범위를 지정합니다. 시작 값과 끝 값을 구분하는 데 사용합니다 AND
. 자세한 내용은 BETWEEN을 참조하세요.
IS [ NOT ] NULL
사용된 키워드에 따라 null 값 또는 null이 아닌 값에 대한 검색을 지정합니다. 비트 연산자 또는 산술 연산자가 있는 식은 NULL
피연산자 중 하나가 있는 경우 계산 NULL
됩니다.
IS [ NOT ] DISTINCT FROM
두 식의 같음을 비교하고 하나 또는 두 피연산자 중 하나라도 true 또는 false 결과를 보장합니다 NULL
. 자세한 내용은 IS [NOT] DISTINCT FROM(Transact-SQL)을 참조하세요.
CONTAINS
문자 기반 데이터가 포함된 열에서 단일 단어와 구, 특정 거리에 있는 단어의 근접성 및 가중치 일치 항목과 정확한 일치하거나 비슷하게 일치(유사 일치)하는 열을 검색합니다. 이 옵션은 문과 함께 SELECT
만 사용할 수 있습니다. 자세한 내용은 CONTAINS를 참조 하세요.
FREETEXT
문자 기반 데이터가 포함된 열에서 조건자에 있는 정확한 단어 대신 의미가 일치하는 값을 검색함으로써 단순한 형태의 자연어 쿼리를 제공합니다. 이 옵션은 문과 함께 SELECT
만 사용할 수 있습니다. 자세한 내용은 FREETEXT를 참조하세요.
[ NOT ] IN
식이 목록에 포함되는지 또는 제외되는지 여부에 따라 식을 검색하도록 지정합니다. 검색 식은 상수 또는 열 이름이 될 수 있으며 목록은 상수 집합 또는 더 일반적으로는 하위 쿼리가 될 수 있습니다. 값의 목록은 괄호로 묶어야 합니다. 자세한 내용은 IN을 참조하세요.
subquery
제한된 SELECT
문으로 간주될 수 있으며 문과 SELECT
유사합니다<query_expression>
. ORDER BY
절과 키워드는 INTO
허용되지 않습니다. 자세한 내용은 SELECT를 참조하세요.
ALL
비교 연산자 및 하위 쿼리와 함께 사용됩니다. TRUE
하위 쿼리에 <predicate>
대해 검색된 모든 값이 비교 작업을 충족하는 경우 또는 FALSE
모든 값이 비교를 충족하지 않거나 하위 쿼리가 외부 문에 행을 반환하지 않는 경우를 반환합니다. 자세한 내용은 ALL을 참조하세요.
{ SOME | ANY }
비교 연산자 및 하위 쿼리와 함께 사용됩니다. TRUE
<predicate>
하위 쿼리에 대해 검색된 값이 비교 작업을 충족하는 경우 또는 FALSE
하위 쿼리의 값이 비교를 충족하지 않거나 하위 쿼리가 외부 문에 행을 반환하지 않는 경우를 반환합니다. 그렇지 않으면 식은 .입니다 UNKNOWN
. 자세한 내용은 SOME | 참조 ANY.
EXISTS
하위 쿼리와 함께 사용되어 하위 쿼리에서 반환한 행의 존재 여부를 검사합니다. 자세한 내용은 EXISTS를 참조 하세요.
설명
논리 연산자의 우선 순위는 NOT
(가장 높음), AND
, OR
순입니다. 검색 조건에 괄호를 사용하면 이 순서를 무시할 수 있습니다. 논리 연산자의 계산 순서는 쿼리 최적화 프로그램에서 선택한 내용에 따라 달라질 수 있습니다. 논리 연산자가 논리 값에서 작동하는 방법에 대한 자세한 내용은 AND, OR 및 NOT을 참조하세요.
예제
이 문서의 Transact-SQL 코드 샘플은 AdventureWorks2022
또는 AdventureWorksDW2022
샘플 데이터베이스를 사용하며, 이는 Microsoft SQL Server 예시 및 커뮤니티 프로젝트(Microsoft SQL Server Samples and Community Projects) 홈 페이지에서 다운로드할 수 있습니다.
A. LIKE 및 ESCAPE 구문과 함께 WHERE 사용
다음 예제에서는 LargePhotoFileName
열에 green_
문자가 있는 행을 검색하고, _
이 와일드카드 문자이므로 ESCAPE
옵션을 사용합니다. 옵션을 지정 ESCAPE
하지 않으면 쿼리는 단어가 green
포함된 설명 값과 문자 이외의 단일 문자를 _
검색합니다.
USE AdventureWorks2022;
GO
SELECT *
FROM Production.ProductPhoto
WHERE LargePhotoFileName LIKE '%greena_%' ESCAPE 'a';
B. 유니코드 데이터와 함께 WHERE 및 LIKE 구문 사용
다음 예에서는 WHERE
절을 사용하여 미국(US
) 이외의 국가에서 Pa
으로 시작하는 시에 있는 모든 기업의 우편 주소를 검색합니다.
USE AdventureWorks2022;
GO
SELECT AddressLine1,
AddressLine2,
City,
PostalCode,
CountryRegionCode
FROM Person.Address AS a
INNER JOIN Person.StateProvince AS s
ON a.StateProvinceID = s.StateProvinceID
WHERE CountryRegionCode NOT IN ('US')
AND City LIKE N'Pa%';
예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)
C. LIKE와 함께 WHERE 사용
다음 예제에서는 LastName
열에 and
문자가 있는 행을 검색합니다.
-- Uses AdventureWorks
SELECT EmployeeKey,
LastName
FROM DimEmployee
WHERE LastName LIKE '%and%';
D. 유니코드 데이터와 함께 WHERE 및 LIKE 구문 사용
다음 예제에서는 WHERE
절을 사용하여 LastName
열에서 유니코드 검색을 수행합니다.
-- Uses AdventureWorks
SELECT EmployeeKey,
LastName
FROM DimEmployee
WHERE LastName LIKE N'%and%';