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 サイトの他の関連記事を参照してください。