2011-01-13 49 views
7

Có cách nào để so sánh các biến hoặc cột của XML trong SQL Server 2008, khác với so sánh một varchar có thể được thực hiện từ giá trị XML không? Một số cơ chế băm?SQL Server 2008: Cách so sánh XML?

Ví dụ:

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

Trả lời

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

Tôi chỉ cố gắng này ra. Nó hoạt động tốt. Bỏ qua sự khác biệt trong khoảng trắng, đó là những gì tôi đã lo lắng. Tôi đã so sánh hai biến XML, được đặt thành XML giống hệt nhau ngoài một vài lần thụt lề và so sánh được trả về true. Tuy nhiên, sau khi thay đổi giá trị văn bản của một phần tử trong một trong số đó, sự so sánh hiện đã trả về false. –

+0

dường như sự cố tồn tại với khoảng trắng – Slava

+0

@Slava theo cách nào? –

Các vấn đề liên quan