我如何才能看清
SELECT *
FROM (VALUES ('A'),('B'),('Y'),('Z'), ('a'),('b'),('y'),('z')) V(C)
ORDER BY C COLLATE Latin1_General_CS_AS和
SELECT *
FROM (VALUES ('A'),('B'),('Y'),('Z'), ('a'),('b'),('y'),('z')) V(C)
ORDER BY C COLLATE Latin1_General_CI_AS?。对于这组字符,没有区别。
干杯Bartosz
发布于 2016-09-08 18:24:42
向您的值集添加一个整数ID列,并在按C排序后按该列排序。
SELECT *
FROM (VALUES (1,'a'),(2,'b'),(3,'y'),(4,'z'),(5,'A'),(6,'B'),(7,'Y'),(8,'Z'),(9,'a'),(10,'b'),(11,'y'),(12,'z')) V(ID,C)
ORDER BY C COLLATE Latin1_General_CS_AS,ID
SELECT *
FROM (VALUES (1,'a'),(2,'b'),(3,'y'),(4,'z'),(5,'A'),(6,'B'),(7,'Y'),(8,'Z'),(9,'a'),(10,'b'),(11,'y'),(12,'z')) V(ID,C)
ORDER BY C COLLATE Latin1_General_CI_AS,ID对于第一个表,它是大小写敏感的,'a‘<> 'A',所以它们被分开处理。我们的排序将小写字母A放在第一位,然后按ID (1,9)对它们进行排序,然后是大写字母A。
ID C
1 a
9 a
5 A在第二个表中,'a'='A',因此它们在同一组中处理,并且3个a(或A)值按ID号一起排序
ID C
1 a
5 A
9 a对于b,y和z,这种模式还在继续。
https://stackoverflow.com/questions/39388240
复制相似问题