首页 > 解决方案 > 排序数据为什么最后出现小写

问题描述

在sql developer中排序数据时,为什么允许小写字母的数据最后出现?

例如

亚当、本、夏洛特、马修、艾米丽

为什么不是:亚当、本、夏洛特、艾米丽、马修?

我不一定想要只是改变它的答案,但为什么会发生呢?是否有一个设置被勾选以使其发生或默认情况下会这样做,除非你写一个声明让它不这样做?

标签: sqloracle-sqldeveloperlowercase

解决方案


数据库中的排序使用排序规则。通常,排序规则是在数据库级别指定的,但可以在表字段级别和查询级别。

排序规则是一种文化在书写系统脚本中使用的字符的顺序。如果人类书写系统本身不会定义两个字符之间的排序,则排序规则可能会退回到基于排序规则字符集的字典顺序。(即使没有他们知道的规则,人类也期望一致性。)

许多排序规则系统包括区分大小写和不区分大小写的排序规则以及区分重音和不区分重音的排序规则。(因此,对于相同的文化和字符集,多达 2 x 2 排序规则。)

因此,您的系统在某处指定了区分大小写。您可以通过首选文化、区分大小写和区分口音来为您的用户(在这种情况下是您自己?)排序。但是从与数据相同的字符集的排序规则中选择,因为字符集转换可能是有损的,除非源是目标的子集。

请参阅 PL/SQL 关于排序规则的文档。


推荐阅读