首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server -排序规则- Latin1_General_CI_AS和Latin1_General_CS_AS之间的差异

SQL Server -排序规则- Latin1_General_CI_AS和Latin1_General_CS_AS之间的差异
EN

Stack Overflow用户
提问于 2016-09-08 18:14:04
回答 1查看 1.2K关注 0票数 4

我如何才能看清

代码语言:javascript
复制
SELECT * 
FROM (VALUES ('A'),('B'),('Y'),('Z'), ('a'),('b'),('y'),('z')) V(C)
ORDER BY C COLLATE Latin1_General_CS_AS

代码语言:javascript
复制
SELECT * 
FROM (VALUES ('A'),('B'),('Y'),('Z'), ('a'),('b'),('y'),('z')) V(C)
ORDER BY C COLLATE Latin1_General_CI_AS

?。对于这组字符,没有区别。

干杯Bartosz

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-08 18:24:42

向您的值集添加一个整数ID列,并在按C排序后按该列排序。

代码语言:javascript
复制
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。

代码语言:javascript
复制
ID  C
1   a
9   a
5   A

在第二个表中,'a'='A',因此它们在同一组中处理,并且3个a(或A)值按ID号一起排序

代码语言:javascript
复制
ID  C
1   a
5   A
9   a

对于b,y和z,这种模式还在继续。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39388240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档