이름이 XPath 노드 테스트인 열
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
열 이름이 XPath 노드 테스트 중 하나인 경우 다음 테이블과 같이 콘텐츠가 매핑됩니다. 열 이름이 XPath 노드 테스트인 경우 해당 노드에 콘텐츠가 매핑됩니다. 열의 SQL 유형이 xml이면 오류가 반환됩니다.
열 이름 | 동작 |
---|---|
text() | 이름이 text()인 열의 경우 열의 문자열 값이 텍스트 노드로 추가됩니다. |
comment() | 이름이 comment()인 열의 경우 해당 열의 문자열 값이 XML 주석으로 추가됩니다. |
node() | 이름이 node()인 열의 경우 열 이름이 와일드카드 문자(* )일 때와 결과가 동일합니다. |
processing-instruction(name) | 처리 명령의 이름이 있는 열의 경우 해당 열의 문자열 값이 처리 명령 대상 이름에 대한 PI 값으로 추가됩니다. |
다음 쿼리에서는 노드 테스트를 열 이름으로 사용하는 방법을 보여 줍니다. 결과 XML에 텍스트 노드와 주석을 추가합니다.
USE AdventureWorks2022;
GO
SELECT E.BusinessEntityID "@EmpID",
'Example of using node tests such as text(), comment(), processing-instruction()' as "comment()",
'Some PI' as "processing-instruction(PI)",
'Employee name and address data' as "text()",
'middle name is optional' as "EmpName/text()",
FirstName as "EmpName/First",
MiddleName as "EmpName/Middle",
LastName as "EmpName/Last",
AddressLine1 as "Address/AddrLine1",
AddressLine2 as "Address/AddrLIne2",
City as "Address/City"
FROM HumanResources.Employee AS E
INNER JOIN Person.Person AS P
ON P.BusinessEntityID = E.BusinessEntityID
INNER JOIN Person.BusinessEntityAddress AS BAE
ON BAE.BusinessEntityID = E.BusinessEntityID
INNER JOIN Person.Address AS A
ON BAE.AddressID = A.AddressID
WHERE E.BusinessEntityID=1
FOR XML PATH;
다음은 결과입니다.
<row EmpID="1">
<!--Example of using node tests such as text(), comment(), processing-instruction() -->
<?PI Some PI?>
Employee name and address data
<EmpName>middle name is optional
<First>Ken</First>
<Last>Sánchez</Last>
</EmpName>
<Address>
<AddrLine1>4350 Minute Dr.</AddrLine1>
<City>Minneapolis</City>
</Address>
</row>