예제: ELEMENTXSINIL 지시문 지정
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
요소 중심 XML을 검색하는 ELEMENT 지시문을 지정하는 경우 열에 NULL 값이 있는 경우 해당 요소는 EXPLICIT 모드에서 생성되지 않습니다. xsi:nil 특성이 TRUE 값으로 설정된 경우 NULL 값에 대한 요소를 생성하도록 요청하기 위해 선택적으로 ELEMENTXSINIL 지시문를 지정할 수 있습니다.
다음 쿼리는 직원 주소를 포함하는 XML을 생성합니다. AddressLine2
및 City
열의 경우 열 이름은 ELEMENTXSINIL
지시문을 지정합니다. 이렇게 하면 행 집합의 AddressLine2
및 City
열에서 NULL 값에 대한 요소가 생성됩니다.
USE AdventureWorks2022;
GO
SELECT 1 as Tag,
NULL as Parent,
E.BusinessEntityID as [Employee!1!EmpID],
BEA.AddressID as [Employee!1!AddressID],
NULL as [Address!2!AddressID],
NULL as [Address!2!AddressLine1!ELEMENT],
NULL as [Address!2!AddressLine2!ELEMENTXSINIL],
NULL as [Address!2!City!ELEMENTXSINIL]
FROM HumanResources.Employee AS E
INNER JOIN Person.BusinessEntityAddress AS BEA
ON E.BusinessEntityID = BEA.BusinessEntityID
UNION ALL
SELECT 2 as Tag,
1 as Parent,
E.BusinessEntityID,
BEA.AddressID,
A.AddressID,
AddressLine1,
AddressLine2,
City
FROM HumanResources.Employee AS E
INNER JOIN Person.BusinessEntityAddress AS BEA
ON E.BusinessEntityID = BEA.BusinessEntityID
INNER JOIN Person.Address AS A
ON BEA.AddressID = A.AddressID
ORDER BY [Employee!1!EmpID],[Address!2!AddressID]
FOR XML EXPLICIT;
다음은 결과의 일부입니다.
<Employee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
EmpID="1"
AddressID="249">
<Address AddressID="249">
<AddressLine1>4350 Minute Dr.</AddressLine1>
<AddressLine2 xsi:nil="true" />
<City>Minneapolis</City>
</Address>
</Employee>
...