名前をワイルドカード文字で指定した列
列名にワイルドカード文字 (*) を指定した場合は、列名が指定されていない場合のように、列の内容が挿入されます。xml 型以外の列の場合は、次の例で示すように内容がテキスト ノードとして挿入されます。
SELECT EmployeeID "@EmpID",
FirstName "*",
MiddleName "*",
LastName "*"
FROM HumanResources.Employee E, Person.Contact C
WHERE E.EmployeeID = C.ContactID
AND E.EmployeeID=1
FOR XML PATH
結果を次に示します。
<row EmpID="1">GustavoAchong</row>
xml 型の列の場合、対応する XML ツリーが挿入されます。たとえば次のクエリでは、Instructions 列に対する XQuery が返す XML を格納する列名として "*" を指定しています。
SELECT
ProductModelID,
Name,
Instructions.query('declare namespace MI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions"
/MI:root/MI:Location
') as "*"
FROM Production.ProductModel
WHERE ProductModelID=7
FOR XML PATH
go
結果は次のとおりです。XQuery が返した XML は、囲み要素なしで挿入されます。
<row>
<ProductModelID>7</ProductModelID>
<Name>HL Touring Frame</Name>
<MI:Location LocationID="10">...</MI:Location>
<MI:Location LocationID="20">...</MI:Location>
...
</row>