ホームページ >データベース >mysql チュートリアル >SQL で XML データから属性値を取得するにはどうすればよいですか?

SQL で XML データから属性値を取得するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-25 21:03:11991ブラウズ

How Can I Retrieve Attribute Values from XML Data in SQL?

SQL で XML データ型から属性値を取得する

SQL で XML データを操作する場合、多くの場合、特定の属性の値を抽出する必要があります。 。たとえば、次の XML から「言語」属性の値を取得する必要がある場合があります:

<email>
  <account language="en" ... />
</email>

これを実現するには、XQuery 式を利用できます。 XQuery を使用して SQL クエリを修正したバージョンを次に示します。

SELECT @xml.value('(/email/account/@language)[1]', 'nvarchar(max)') FROM Mail

このクエリでは、.value() 関数を使用して、「@xml」変数で表される XML ドキュメントをクエリします。 XQuery 式「/email/account/@ language」は目的の属性へのパスを指定し、「[1]」は最初 (唯一) 一致する属性の値を確実に取得します。

またはでは、次のテーブル式を使用して属性値を取得できます:

declare @t table (m xml)

insert @t values 
    ('<email><account language="en" /></email>'), 
    ('<email><account language="fr" /></email>')

select m.value('(/email/account/@language)[1]', 'nvarchar(max)')
from @t

このアプローチは、属性値を取得するためのより簡潔でスケーラブルなソリューションを提供します。テーブル内の複数の XML ドキュメント。クエリの出力は次のようになります:

en
fr

以上がSQL で XML データから属性値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。