gpt4 book ai didi

sql - Firebird 按排序规则排序

转载 作者:行者123 更新时间:2023-12-02 08:43:37 25 4
gpt4 key购买 nike

我在使用 Firebird 2.5 时遇到了奇怪的问题。

我的数据库有默认字符集 = utf8。

我在 patenten 表中有一个列 p_nname:

CREATE TABLE PATIENTEN (
P_NNAME VARCHAR(25) DEFAULT '' NOT NULL COLLATE UNICODE_CI,

我希望排序规则能够在任何地方发挥作用。我的意思是在 WHERE 和 ORDER BY 子句中。

我所拥有的是 WHERE 中的工作整理。下面的两个查询给了我类似的结果,这很好。

select * from patienten where p_nname='adler'
select * from patienten where p_nname='ADler'

问题是 ORDER BY 子句无法按我的预期工作。

此 SQL 的工作方式就像该列没有 UNICODE_CI 排序规则一样。

select * from patienten order by p_nname

为了通过良好的排序获得所需的结果,我必须这样写:

select * from patienten order by p_nname collate unicode_ci

有没有办法在 ORDER BY 子句中省略 COLLATE 标志?

最佳答案

看起来确实是一个错误,documentation状态:

The keyword COLLATE specifies the collation order for a string column if you need a collation that is different from the normal one for this column. The normal collation order will be either the default one for the database character set or one that has been set explicitly in the column's definition.

所以它应该可以在不指定 ORDER BY 中的 collat​​e 子句的情况下工作。我建议您提交错误报告。

关于sql - Firebird 按排序规则排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37608376/

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