ホームページ >データベース >mysql チュートリアル >SQL Server の XML 列からデータを効率的に抽出するにはどうすればよいですか?
SQL Server での XML データ抽出のマスター: 実践ガイド
SQL Server の XML 列から特定のデータ ポイントを抽出するのは複雑になる場合があります。このガイドでは、このプロセスを簡素化するための効率的な T-SQL テクニックを提供します。
XML 列の値 (「ロール」など) をクエリするには、次の構文を使用します。
<code class="language-sql">SELECT Roles FROM MyTable WHERE Roles.value('(/root/role)[1]', 'varchar(max)') LIKE 'StringToSearchFor'</code>
覚えておいてください: 非 XML 列はクエリを実行する前に変換する必要があります。 特定の XML 属性をターゲットにすることもできます。
次の XML の例を考えてみましょう:
<code class="language-xml"><utilities.codesystems.codesystemcodes ....="" code="0001F" codesystem="2" codetags="-19-" iid="107"></utilities.codesystems.codesystemcodes></code>
このクエリは、CodeSystem
が '2' に等しい行を取得します:
<code class="language-sql">SELECT [data] FROM [dbo].[CodeSystemCodes_data] WHERE CAST([data] AS XML).value('(/Utilities.CodeSystems.CodeSystemCodes/@CodeSystem)[1]', 'varchar(max)') = '2'</code>
CROSS APPLY
演算子は、XML ノードを効率的に反復処理します。この例では、「ga」を含むすべてのロールを取得します:
<code class="language-sql">SELECT * FROM (SELECT pref.value('(text())[1]', 'varchar(32)') AS RoleName FROM MyTable CROSS APPLY Roles.nodes('/root/role') AS Roles(pref) ) AS Result WHERE RoleName LIKE '%ga%'</code>
これらのメソッドを使用すると、SQL Server の XML 列に対して効果的にクエリを実行してデータを抽出できるようになり、高度なデータ分析と管理が容易になります。
以上がSQL Server の XML 列からデータを効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。