COMMANDE PAR ... l'assemblage dans SQL Server

Sous SQL Server. Une table contient du texte avec des cas différents. Je veux les trier sensible à la casse et de la pensée qu'un COLLATE dans le ORDER BY le ferait. Il n'a pas. Pourquoi?

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

Les deux requêtes de retour, même si le premier est "CS" pour la casse

aaa1
AAB2
aba3

(dans le premier cas, je veux AAB2, aaa1, aba3)

Mon serveur est un Serveur SQL server Express 2008 (10.0.5500) et son classement du serveur par défaut est Latin1_General_CI_AS.

Le classement de la base de données est Latin1_General_CI_AS trop.

Le résultat reste le même, si j'utilise SQL_Latin1_General_CP1_CS_AS en place de Latin1_General_CS_AS.

OriginalL'auteur Olivier Faucheux | 2012-12-11