2011-01-13 5 views
7

Есть ли способ сравнить переменные или столбцы XML в SQL Server 2008, который отличается от сравнения varchar, который может быть сделан из значения XML? Некоторые механизмы хеширования?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

Я просто попытался это. Это работает хорошо. Игнорирует различия в пробелах, о чем я беспокоился. Я сравнил две переменные XML, установил одинаковый XML отдельно от нескольких отступов, и сравнение вернулось. Однако после изменения текстового значения элемента в одном из них сравнение теперь возвращает false. –

+0

похоже проблема существует с пробелами – Slava

+0

@Slava каким образом? –

Смежные вопросы