【发布时间】:2012-11-29 02:55:30
【问题描述】:
在 SQL Server 下。一个表格包含一些不同大小写的文本。我想对它们进行区分大小写的排序,并认为ORDER BY 中的COLLATE 可以做到这一点。它没有。为什么?
CREATE TABLE T1 (C1 VARCHAR(20))
INSERT INTO T1 (C1) VALUES ('aaa1'), ('AAB2'), ('aba3')
SELECT * FROM T1 ORDER BY C1 COLLATE Latin1_General_CS_AS
SELECT * FROM T1 ORDER BY C1 COLLATE Latin1_General_CI_AS
两个查询返回相同,即使第一个是“CS”以区分大小写
aaa1
AAB2
aba3
(第一种情况,我要AAB2, aaa1, aba3)
我的服务器是 SQL Server Express 2008 (10.0.5500),它的默认服务器排序规则是 Latin1_General_CI_AS。
数据库的排序规则也是Latin1_General_CI_AS。
如果我使用SQL_Latin1_General_CP1_CS_AS 代替Latin1_General_CS_AS,结果保持不变。
【问题讨论】:
标签: sql-server sql-order-by collation case-sensitive