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

SQL Server で XQuery を使用して 2 つの XML データ セットを比較する

    ;with XML1 as
    (
      select T.N.value('local-name(.)', 'nvarchar(100)') as NodeName,
             T.N.value('.', 'nvarchar(100)') as Value
      from @XML1.nodes('/NewDataSet/Employee/*') as T(N)
    ),
    XML2 as
    (
      select T.N.value('local-name(.)', 'nvarchar(100)') as NodeName,
             T.N.value('.', 'nvarchar(100)') as Value
      from @XML2.nodes('/NewDataSet/Employee/*') as T(N)
    )
    select coalesce(XML1.NodeName, XML2.NodeName) as NodeName, 
           XML1.Value as Value1, 
           XML2.Value as Value2
    from XML1
      full outer join XML2
        on XML1.NodeName = XML2.NodeName
    where coalesce(XML1.Value, '') <> coalesce(XML2.Value, '')    
    

    結果:

    NodeName             Value1               Value2
    -------------------- -------------------- --------------------
    EmpID                1005                 1006
    DOB                  12/02/1981           05/02/1981
    DeptID               ACC001               ACC002
    Salary               10,500               10,900
    


    1. PostgreSQL:外部キーとして特定の列を持つすべてのテーブルのリストを取得するSQLスクリプト

    2. OBJECTPROPERTY()関数を使用して、オブジェクトがSQL Serverのテーブル、ビュー、またはストアドプロシージャであるかどうかを確認します

    3. インデックスが配列の範囲外だった。 (Microsoft.SqlServer.smo)

    4. ステータスの更新と新しいレコードの挿入を処理するためのCSVファイルのアップロード