首页 > 解决方案 > 相同排序规则的结果集差异

问题描述

我有一个表'Table1',其中包含存储以下值(例如)的名称列(以及其他列),名称 1 为 10 行,名称 2 为 10 行。

名称 1 : Internationale Union öffentlicher Vereinigungen 'Grosse Don-Armee'

名称 2 : Internationale Union öffentlicher Vereinigungen 'Große Don-Armee'

为了使这篇文章简单,我正在编写一个 SELECT 查询(包装在一个存储过程中),它按名称对记录进行分组并获取记录计数,如下所示。

SELECT Name,COUNT(1) AS CountedRecords FROM Table1 GROUP BY Name

在数据库服务器 1上,这些给我输出(称为结果集 1)-

姓名 计数记录
Internationale Union öffentlicher Vereinigungen 'Grosse Don-Armee' 10
Internationale Union öffentlicher Vereinigungen 'Große Don-Armee' 10

在数据库服务器 2上,这些给我输出(称为结果集 2)-

姓名 计数记录
Internationale Union öffentlicher Vereinigungen 'Grosse Don-Armee' 20

排序规则设置为 SQL_Latin1_General_CP1_CI_AS 并且两台服务器上的表架构完全相同。我可以更改我的查询以包括名称列的 COLLATE Latin1_General_CI_AI 以使其不区分重音,它将在结果集 1 中返回计数 = 20 的 1 行,但是我正在寻找结果中这种差异背后的根本原因或可能原因即使在 SQL 服务器和数据库级别上的排序规则相同时也会设置,这会导致在将(内部)结果集 1 与名称列上的表 1 连接以进行进一步操作时出现重复行。

它与排序规则或其他一些底层 SQL/Server/Windows 设置有关吗?

标签: sqlsql-server

解决方案


推荐阅读