Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー SQL の使用法 » データベースにおける XML の使用 » XML としてのクエリ結果 » クエリ結果を XML として取り出すための FOR XML 句の使用

 

FOR XML と NULL 値

デフォルトでは、NULL 値を含む要素と属性は、結果から省略されます。for_xml_null_treatment オプションを使用すると、この動作を制御できます。

NULL 会社名を含む Customers テーブル内のエントリを考えてみます。

INSERT INTO Customers( ID, Surname, GivenName, Street, City, Phone) 
VALUES (100,'Robert','Michael', '100 Anywhere Lane','Smallville','519-555-3344');

for_xml_null_treatment オプションを Omit (デフォルト) に設定して次のクエリを実行すると、属性は NULL カラム値について生成されません。

SELECT ID, GivenName, Surname, CompanyName
FROM Customers
WHERE GivenName LIKE 'Michael%'
ORDER BY ID
FOR XML RAW;

この場合、CompanyName 属性は Michael Robert について生成されません。

<row ID="100" GivenName="Michael" Surname="Robert"/>
<row ID="101" GivenName="Michaels" Surname="Devlin" CompanyName="The Power Group"/>
<row ID="110" GivenName="Michael" Surname="Agliori" CompanyName="The Pep Squad"/>

for_xml_null_treatment オプションを Empty に設定すると、空の属性も結果に含まれます。

<row ID="100" GivenName="Michael" Surname="Robert" CompanyName=""/>
<row ID="101" GivenName="Michaels" Surname="Devlin" CompanyName="The Power Group"/>
<row ID="110" GivenName="Michael" Surname="Agliori" CompanyName="The Pep Squad"/>

この場合、空の CompanyName 属性が Michael Robert について生成されています。

 参照