例
次の例は、通常のデータおよび XML タグが付けられたデータとして、Sample.Person の各個人の Name フィールドの値を返します。
SELECT Name,
XMLELEMENT("Para",Name) AS ExportName
FROM Sample.Person
返されるデータ行は、次のようになります。
Name ExportName
Emerson,Molly N. <Para>Emerson,Molly N.</Para>
次の例では、Sample.Person 内の重複していない Home_City 値と Home_State 値の組み合わせごとに、データに XML のタグ <Address> ... </Address> を付けて返します。市区町村名と都道府県名が連結されないようにするには、空白の expression を指定します。
SELECT DISTINCT
XMLELEMENT(NAME "Address",Home_City,' ',Home_State) AS CityState
FROM Sample.Person
ORDER BY Home_City
上の例では、オプションの NAME キーワードが使用されています。以下の例は、NAME キーワードを tag 値なしで使用します。
SELECT DISTINCT
XMLELEMENT(NAME,Home_City,' ',Home_State) AS CityState
FROM Sample.Person
ORDER BY Home_City
この場合、同じデータを返しますが、既定のタグ <Name> ... </Name> が付けられます。
以下の例は、文字ストリーム・データを返します。
SELECT XMLELEMENT("Para",Name) AS XMLNotes,XMLELEMENT("Para",Notes) AS XMLText
FROM Sample.Employee
返されるデータ行は、次のようになります。
XMLName XMLText
<Para>Emerson,Molly N.</Para> <Para>Molly worked at DynaMatix Holdings Inc. as a Marketing Manager</Para>
以下の例は、XMLELEMENT 関数を入れ子にして使用できることを示します。
SELECT XMLELEMENT("Para",Home_State,
XMLELEMENT("Emphasis",Name),Age)
FROM Sample.Person
返されるデータ行は、次のようになります。
<Para>CA<Emphasis>Emerson,Molly N.</Emphasis>24</Para>
以下の例は、サブクエリの値を使用する XMLELEMENT 関数を示しています。
SELECT XMLELEMENT("Para",Name,DOB, XMLELEMENT("Emphasis",%ID),Age,
(SELECT XMLELEMENT("NameSub",Name) FROM Sample.Person WHERE %ID=2)) AS ExportName
FROM Sample.Person WHERE %ID=1
返されるデータ行は、次のようになります。
<Para>Zucherro,Rob F.38405<Emphasis>1</Emphasis>71<NameSub>Quixote,Mark N.</NameSub></Para>
以下の例は、XMLELEMENT が CASE 文の節内に値をタグ付けできないことを示します。
SELECT XMLELEMENT("Para",Home_State,
XMLELEMENT("Para",Name),
CASE WHEN Age < 21 THEN NULL
ELSE XMLELEMENT("Para",Age) END )
FROM Sample.Person
返されるデータ行は、次のようになります。
<Para>CA<Para>Emerson,Molly N.</Para><Para>24</Para></Para>
以下のクエリは、Sample.Person の Name フィールドの値を返します。これはデータに XML のタグ付けをし、このタグ内で ID フィールドをタグ属性として使用したものです。
SELECT XMLELEMENT("Para",XMLATTRIBUTES(%ID),Name) AS ExportName
FROM Sample.Person
返されるデータ行は、次のようになります。
ExportName
<Para ID='101' >Emerson,Molly N.</Para>
属性のエイリアスの指定方法を、以下の例に示します。
SELECT XMLELEMENT("Para",XMLATTRIBUTES(%ID AS ItemKey),Name)
FROM Sample.Person
返されるデータ行は、次のようになります。
<Para ItemKey='101' >Emerson,Molly N.</Para>