SQL Serverの下。表には、さまざまなケースのテキストが含まれています。大文字と小文字を区別して並べ替えて、ORDER BY
のCOLLATE
とすると思います。それはしません。どうして?ORDER BY ... 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
両方のクエリが
私のサーバである(最初のケースでは、私はAAB2, aaa1, aba3
をしたい)最初のものは、大文字と小文字を区別し
aaa1
AAB2
aba3
のために「CS」の場合でも、同じことを返しますSQL Server Express 2008(10.0.5500)とその既定のサーバー照合はLatin1_General_CI_AS
です。
データベースの照合順序は、あまりにもLatin1_General_CI_AS
です。私はLatin1_General_CS_AS
の代わりにSQL_Latin1_General_CP1_CS_AS
を使用する場合
結果は同じまま。