2011-01-13 3 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

난 그냥 이것을 시도했습니다. 잘 작동한다. 내가 걱정했던 공백의 차이를 무시합니다. 두 개의 들여 쓰기를 제외하고는 동일한 XML로 설정된 두 개의 XML 변수를 비교 한 결과 사실이 반환되었습니다. 그러나 둘 중 하나에서 요소의 텍스트 값을 변경하면 비교 결과가 false로 반환됩니다. –

+0

공백에 문제가있는 것 같습니다. – Slava

+0

@Slava는 어떤 방식으로 나타 납니까? –