Ale*_*lex 2 xml sql sql-server sql-server-2012
我有 2 个类型的文件:
@xmlAuthors1 XML =N'
<Author name="John" surname="Clinton" />
<Author name="Bill" surname="Skobov" />
<Author name="John" surname="Lokwood" />;
@xmlAuthors2 XML =N'
<Author name="Bill" surname="Skobov" />
<Author name="John" surname="Clinton" />
<Author name="John" surname="Lokwood" />;
Run Code Online (Sandbox Code Playgroud)
如何发现它们相等?将文件 1 的每一行与文件 2 的每一行进行比较
例如,您可以将它们进行比较:
DECLARE @xmlAuthors1 XML = N'
<Author name="John" surname="Clinton" />
<Author name="Bill" surname="Skobov" />
<Author name="John" surname="Lokwood" />',
@xmlAuthors2 XML =N'
<Author name="Bill" surname="Skobov" />
<Author name="Johns" surname="Clinton" />
<Author name="John" surname="Lokwood" />'
SELECT *
FROM (
SELECT CAST(x1.t.query('.') as nvarchar(max)) as x1,
CAST(x2.t.query('.') as nvarchar(max)) as x2
FROM @xmlAuthors1.nodes('/*') as x1(t)
FULL OUTER JOIN @xmlAuthors2.nodes('/*') as x2(t)
ON CAST(x1.t.query('.') as nvarchar(max)) = CAST(x2.t.query('.') as nvarchar(max))
) as x
WHERE x1 is null or x2 is null
Run Code Online (Sandbox Code Playgroud)
如果相等则没有输出
| 归档时间: |
|
| 查看次数: |
2888 次 |
| 最近记录: |