이름이 XPath 노드 테스트인 열Columns with the Name of an XPath Node Test

열 이름이 XPath 노드 테스트 중 하나일 경우 다음 표에서와 같이 내용이 매핑됩니다.If the column name is one of the XPath node tests, the content is mapped as shown in the following table. 열 이름이 XPath 노드 테스트이면 내용이 해당 노드로 매핑됩니다.When the column name is an XPath node test, the content is mapped to the corresponding node. 열의 SQL 유형이 xml이면 오류가 반환됩니다.If the SQL type of the column is xml, an error is returned.

열 이름Column Name 동작Behavior
text()text() 이름이 text()인 열의 경우 열의 문자열 값이 텍스트 노드로 추가됩니다.For a column with the name of text(), the string value in that column is added as a text node.
comment()comment() 이름이 comment()인 열의 경우 열의 문자열 값이 XML 주석으로 추가됩니다.For a column with the name of comment(), the string value in that column is added as an XML comment.
node()node() 이름이 node()인 열의 경우 열 이름이 와일드카드 문자()일 때와 결과가 같습니다.For a column with the name of node(), the result is the same as it is when the column name is a wildcard character ().
processing-instruction(name)processing-instruction(name) 이름이 처리 명령인 열의 경우 열의 문자열 값이 처리 명령 대상 이름의 PI 값으로 추가됩니다.For a column with the name of a processing instruction, the string value in that column is added as the PI value for the processing instruction target name.

다음 쿼리에서는 노드 테스트를 열 이름으로 사용하는 방법을 보여 줍니다.The following query shows the use of the node tests as column names. 쿼리는 결과 XML에 텍스트 노드와 주석을 추가합니다.It adds text nodes and comments in the resulting XML.

USE AdventureWorks2012;  
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;  

다음은 결과입니다.This is the result:

<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>

참고 항목See Also

FOR XML에서 PATH 모드 사용Use PATH Mode with FOR XML