gpt4 book ai didi

Oracle 数据库按波兰语字符排序

转载 作者:行者123 更新时间:2023-12-02 05:19:22 25 4
gpt4 key购买 nike

我在按包含波兰语字符(例如 ±、Ą)的 varchar 对元素进行排序时遇到问题。

例如,我们有以下名称:

Aaaa
BBcvx
Ąccc
Ddde
ądcc

以下查询:

select * from something order by lower(name);

返回结果如下:

Aaaa
BBcvx
Ddde
ądcc
Ąccc

如您所见,波兰字符被忽略并放在末尾。应该是:

Aaaa
ądcc
Ąccc
BBcvx
Ddde

可能是什么问题?数据库编码?我的是:

SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET';

Result:
EE8MSWIN1250

可以在不更改数据库编码的情况下解决这个问题吗?

最佳答案

您需要查看 NLS_SORT参数,特别是linguistic sorting .您可以使用此参数指定什么 language you'd like to sort by .我怀疑你的情况是 POLISH

像这样

select *
from something
order by nls_lower(name, 'NLS_SORT' = 'POLISH')

NLS_LOWER()以与普通 LOWER() 相同的方式返回小写字符。

您也可以在 session 级别执行此操作,这会在 session 期间更改默认排序参数。

alter session set nls_sort = POLISH;

如果你想总是使用这种排序;这是在创建数据库时在数据库级别完成的。

关于Oracle 数据库按波兰语字符排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14127437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com