【发布时间】:2019-08-14 12:31:21
【问题描述】:
我有来自 2 个不同数据库的数据,我需要将它们合并并相互比较。
一个例子:
select distinct CustomerNo from DB1.dbo.TableCustomers
UNION ALL
select distinct CustNo from DB2.dbo.NewTableCustomers
我收到 无法解决 UNION 操作中“Danish_Norwegian_CI_AS”和“Danish_Greenlandic_100_CI_AS”之间的排序规则冲突错误。 任何想法如何解决这个问题?
【问题讨论】:
-
在导致问题的列上使用明确的
collate。然后,修复您的数据库和表,使它们都使用相同的排序规则! -
更改为
CustomerNo COLLATE Danish_Norwegian_CI_AS和CustNo COLLATE Danish_Norwegian_CI_AS或在这两个地方使用Danish_Greenlandic_100_CI_AS。然后,按照 Gordon 的建议,修复您的数据库,使其保持一致。 -
选择 distinct 与 union all 结合。有点奇怪的组合。
-
大家好,感谢您的快速回复。问题是我正在将数据与我们不再使用的旧系统进行比较。由于一些发票问题,数据尚未转换到新系统。
-
你能告诉我在上面的例子中是如何使用 collate 的吗?是否需要更改表格?我无权更改表格
标签: sql sql-server collation