SQL で XML データから属性値を取得する
SQL データベースで XML データを操作する場合、多くの場合、特定の属性値を抽出する必要があります。たとえば、テーブルに格納されている次の XML ドキュメントについて考えてみましょう。
<email> <account language="en" ... /> </email>
言語属性の値を取得するには、SQL クエリで XQuery 式を使用できます。 XQuery は、XML ドキュメントに移動して情報を抽出するための強力な方法を提供します。
DECLARE @xml XML = '<email> <account language="en" /> </email>' SELECT @xml.value('(/email/account/@language)[1]', 'nvarchar(max)')
このクエリは、value() 関数を使用して XQuery 式を評価し、指定された XPath 式に対応するノード値を返します。この場合、XPath 式 (/email/account/@lang)[1] は、XML ドキュメント内の account 要素の下にある最初の言語属性値を選択します。
あるいは、XML データが次のテーブル:
CREATE TABLE @t (m XML) INSERT INTO @t VALUES ('<email><account language="en" /></email>'), ('<email><account language="fr" /></email>')
次のように相関サブクエリを使用して属性値を取得できます。
SELECT m.value('(/email/account/@language)[1]', 'nvarchar(max)') FROM @t
これらの手法を使用すると、SQL クエリで XML データから属性値を効果的に取得できます。
以上がSQL クエリを使用して XML データから属性値を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。