排序数据为什么最后出现小写字母

Ordering data why does lowercase appear last

在sql开发者中订购数据时,为什么最后出现允许小写字母的数据?

例如

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

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

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

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

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

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

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

请参阅 PL/SQL 关于 collations 的文档。