sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2008 XPath

    .exist() を使用できます メソッド - 次のようなもの:

    SELECT 
    (list of columns) 
    FROM
    dbo.YourTable
    WHERE
    YourXmlColumn.exist('//Value[text()="5052095050830"]') = 1
    

    これにより、指定した特定の値がチェックされます。その値が見つかると予想される XPath をより正確に定義できるほど、パフォーマンスが向上します。

    YourXmlColumn.exist('//Value[text()="5052095050830"]') = 1
    

    かなり悪い - すべての <Value> を調べます XML 内の任意のノードを検索して、その値を見つけます。

    このようなもの:

    YourXmlColumn.exist('/Attributes/ProductVariantAttribute/ProductVariantAttributeValue/Value[text()="5052095050830"]') = 1
    

    はるかに焦点が絞られているため、パフォーマンスが大幅に向上しますが、その XPath ステートメントで定義された特定のノードのみが対象になります



    1. Script Task(VB)からSSIS PackageのOLEDB Connection Managerへの接続確立

    2. OracleMINUS演算子の説明

    3. Postgresのフィルター基準に基づいて深くネストされたJSONオブジェクトを更新するにはどうすればよいですか?

    4. SQL Serverでマテリアライズドビューを作成するにはどうすればよいですか?