2011-01-13 18 views
7

SQL Server 2008のXMLの変数または列を比較する方法はありますか?これは、XML値から作成できるvarcharの比較と異なりますか?いくつかのハッシュメカニズム?例えばSQL Server 2008:XMLを比較するには?

は:

declare @xml1 xml = '<Xml1/>' 
declare @xml2 xml = '<Xml2/>' 
select case when @xml1 = @xml2 then 1 else 0 end 

答えて

12
select case when cast(@xml1 as nvarchar(max)) = cast(@xml2 as nvarchar(max)) then 1 else 0 end 
+0

私はこれを試してみました。それはうまくいく。私が心配していた空白の違いを無視します。私は、2つのXML変数を比較し、2つのインデントから離れて同一のXMLに設定しました。ただし、いずれかの要素のテキスト値を変更した後、比較はfalseを返すようになりました。 –

+0

空白に問題があるようです – Slava

+0

@Slavaどのようにですか? –

関連する問題