sql - 排序数据为什么最后出现小写
问题描述
在sql developer中排序数据时,为什么允许小写字母的数据最后出现?
例如
亚当、本、夏洛特、马修、艾米丽
为什么不是:亚当、本、夏洛特、艾米丽、马修?
我不一定想要只是改变它的答案,但为什么会发生呢?是否有一个设置被勾选以使其发生或默认情况下会这样做,除非你写一个声明让它不这样做?
解决方案
数据库中的排序使用排序规则。通常,排序规则是在数据库级别指定的,但可以在表字段级别和查询级别。
排序规则是一种文化在书写系统脚本中使用的字符的顺序。如果人类书写系统本身不会定义两个字符之间的排序,则排序规则可能会退回到基于排序规则字符集的字典顺序。(即使没有他们知道的规则,人类也期望一致性。)
许多排序规则系统包括区分大小写和不区分大小写的排序规则以及区分重音和不区分重音的排序规则。(因此,对于相同的文化和字符集,多达 2 x 2 排序规则。)
因此,您的系统在某处指定了区分大小写。您可以通过首选文化、区分大小写和区分口音来为您的用户(在这种情况下是您自己?)排序。但是从与数据相同的字符集的排序规则中选择,因为字符集转换可能是有损的,除非源是目标的子集。
请参阅 PL/SQL 关于排序规则的文档。
推荐阅读
- javascript - 使用 Java 和 Typescript 进行 AES 加密/解密
- google-cloud-platform - 如何指定多个 shell 脚本作为 Dataproc 集群创建的初始化操作?
- java - 泛型类的泛型构造函数
- c - 检查输入的字符串是否包含数字的函数的问题
- python - 检索类实例中的嵌套字典
- c# - 在 c# 代码中将引号传递给 powershell 脚本不起作用
- tensorflow - 从我的硬盘加载数据集的python代码是什么
- nginx - Nginx - 配置路由到单页应用程序
- r - 如果我想以创建一个长向量的方式读回一个长向量以便进行调整,我该如何使用 R 来做到这一点?
- c - 关于使用 printf 在 C 中表示数据类型的问题