0

这个问题我长期面临。我在不同的数据库中有两个表,它们具有相同的列和完全相同的数据类型。但是当做连接或任何其他匹配的查询时,我只得到很少的结果,我注意到当保持

LTRIM(RTRIM(UPPER(SourceTable.Column))) =
LTRIM(RTRIM(UPPER(DestinationTable.Column))) 

它工作正常。我很惊讶地说我在位和整数列上看到了同样的问题,当我保留 LTRIM、RTRIM 和 UPPER/LOWER 时它们也能正常工作。

下面是两个数据库的整理:

Source: SQL_Latin1_General_CP1_CI_AS
Destination: SQL_Latin1_General_CP1_CI_AS

正如你所看到的,即使我遇到了这个问题,它们也有相同的排序规则。我可以对此有一个永久的解决方案吗?

4

1 回答 1

0

如果数据类型完全相同,则可能是您实际上对列有不同的排序规则 - 您实际上可以对数据库有不同的排序规则,在列级别指定。对我来说,第一个停靠港是检查。

MSDN 资源,引用:

列级排序规则

When you create or alter a table, you can specify collations for each 
character-string column by using the COLLATE clause. If no collation is 
specified, the column is assigned the default collation of the database.
于 2013-01-22T11:06:45.443 回答