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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データベースにおける XML » データベースにおける XML の使用 » クエリ結果を XML として取得する » FOR XML 句を使用してクエリ結果を 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 について生成されています。

for_xml_null_treatment オプションについては、for_xml_null_treatment オプション [データベース]を参照してください。