在SQL Server下。表格包含一些具有不同案例的文本。我想對它們區分大小寫,並認爲ORDER BY
中的COLLATE
會這樣做。它沒有。爲什麼?ORDER BY ... COLLATE在SQL Server中
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
,結果保持不變。