比较 where 子句中的 uniqueidentifier

2021-09-14 00:00:00 sql tsql sql-server uniqueidentifier

我们有两个表:MainTableCloneOfMainTable

We have two tables : MainTable and CloneOfMainTable

两个表的结构是:

ID : int Identity Primarykey
Foo: nvarchar(50) 
RowVersion : uniqueidentifier

我们想通过比较 RowVersion 和 bla bla ... 来简单地获取更新的行...

We want to simply get the updated rows by comparing RowVersion and bla bla ...

SELECT * 
FROM MainTable 
INNER JOIN CloneOfMainTable On MainTable.ID = CloneOfMainTable.ID
WHERE MainTable.RowVersion <> CloneOfMainTable.RowVersion

它不起作用^_^"

推荐答案

比较 uniqueidentifier 值没有限制.由于该列可以为空,您可以使用 coalesce 来包含 null 值进行比较:

There are no limitations on comparing uniqueidentifier values. As the column is nullable you may use coalesce to include null values in comparison:

WHERE coalesce(MainTable.RowVersion,'00000000-0000-0000-0000-000000000000') <> coalesce(CloneOfMainTable.RowVersion,'00000000-0000-0000-0000-000000000000')

相关文章