xml 데이터 형식에 대한 XQuery 연산자
적용 대상:SQL Server
XQuery는 다음 연산자를 지원합니다.
숫자 연산자(+, -, *, div, mod)
값 비교 연산자(eq, ne, lt, gt, le, ge)
일반 비교를 위한 연산자 ( =, !=, <, >, <=, >= )
이러한 연산자에 대한 자세한 내용은 비교 식(XQuery)을 참조 하세요.
예
A. 일반 연산자 사용
이 쿼리는 시퀀스에 적용되는 일반 연산자를 사용하고 시퀀스를 비교하는 방법을 보여 줍니다. 쿼리는 연락처 테이블의 AdditionalContactInfo 열에서 각 고객에 대한 전화 번호 시퀀스를 검색합니다. 그런 다음 이 번호를 두 개의 전호 번호("111-111-1111", "222-2222")와 비교합니다.
쿼리는 비교 연산자를 = 사용합니다. 연산자의 오른쪽 = 에 있는 시퀀스의 각 노드는 왼쪽 시퀀스의 각 노드와 비교됩니다. 노드가 일치하면 노드 비교는 TRUE입니다. 그런 다음 int로 변환되고 1과 비교하여 쿼리에서 고객 ID를 반환합니다.
WITH XMLNAMESPACES (
'https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo' AS ACI,
'https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes' AS ACT)
SELECT ContactID
FROM Person.Contact
WHERE AdditionalContactInfo.value('
//ACI:AdditionalContactInfo//ACT:telephoneNumber/ACT:number =
("111-111-1111", "222-2222")',
'bit')= cast(1 as bit)
이전 쿼리의 작동 방식을 관찰하는 또 다른 방법이 있습니다. AdditionalContactInfo 열에서 검색된 각 전화 번호 값은 두 개의 전화 번호 집합과 비교됩니다. 값이 집합에 있으면 해당 고객이 결과에 반환됩니다.
B. 숫자 연산자 사용
이 쿼리의 + 연산자는 단일 항목에 적용되기 때문에 값 연산자입니다. 예를 들어 쿼리에 의해 반환되는 로트 크기에 값 1이 추가됩니다.
SELECT ProductModelID, Instructions.query('
declare namespace
AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
for $i in (/AWMI:root/AWMI:Location)[1]
return
<Location LocationID="{ ($i/@LocationID) }"
LotSize = "{ number($i/@LotSize) }"
LotSize2 = "{ number($i/@LotSize) + 1 }"
LotSize3 = "{ number($i/@LotSize) + 2 }" >
</Location>
') as Result
FROM Production.ProductModel
where ProductModelID=7
C. 값 연산자 사용
다음 쿼리는 그림 크기가 <Picture
> "작음"인 제품 모델의 요소를 검색합니다.
SELECT CatalogDescription.query('
declare namespace PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
for $P in /PD:ProductDescription/PD:Picture[PD:Size eq "small"]
return
$P
') as Result
FROM Production.ProductModel
where ProductModelID=19
eq 연산자에 대한 피연산자는 모두 원자성 값이므로 값 연산자는 쿼리에서 사용됩니다. 일반 비교 연산자( = )를 사용하여 동일한 쿼리를 작성할 수 있습니다.
참고 항목
xml 데이터 형식에 대한 XQuery 함수
XML 데이터(SQL Server)
XQuery 언어 참조(SQL Server)
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기