名前のない列

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

名前のない列はインラインになります。 たとえば、計算列または入れ子になったスカラー クエリで列の別名を指定しないと、名前のない列が生成されます。 列が xml 型の場合、そのデータ型のインスタンスの内容が挿入されます。 それ以外の型の場合は、列の内容がテキスト ノードとして挿入されます。

SELECT 2 + 2
FOR XML PATH;

上のクエリは、次の XML を生成します。 既定では、行セットの行ごとに 1 つの <row> 要素が、結果の XML に生成されます。 これは RAW モードと同じ動作です。

<row>4</row>

次のクエリは 3 列の行セットを返します。 3 番目の名前がない列には、XML データが含まれています。 PATH モードにより、xml 型のインスタンスが挿入されます。

USE AdventureWorks2022;
GO
SELECT ProductModelID,
       Name,
       Instructions.query(
           'declare namespace MI="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
            /MI:root/MI:Location
           ')
FROM Production.ProductModel
WHERE ProductModelID=7
FOR XML PATH ;
GO

結果の一部を次に示します。

<row>
  <ProductModelID>7</ProductModelID>
  <Name>HL Touring Frame</Name>
  <MI:Location ...LocationID="10" ...></MI:Location>
  <MI:Location ...LocationID="20" ...></MI:Location>
  ...
</row>

関連項目