在Oracle ORDER BY中忽略与号(&)字符
||
我在Oracle中运行查询,该查询按可能带有&符的列排序。但是,排序算法似乎忽略了&符。
例如:
select * from (
select \'&\' txt from dual
union
select \'P\' txt from dual
union
select \'N\' txt from dual
)
order by txt
准确打印(我猜是正确的):
&
N
P
但是,如果我将\'&\'更改为\'&Z \',则结果将更改:
select * from (
select \'&\'||\'Z\' txt from dual // concatenating just to
// avoid variable substitution
union
select \'P\' txt from dual
union
select \'N\' txt from dual
)
order by txt
结果是:
N
P
&Z
如果将\'Z \'更改为\'A \',则结果为:
&A
N
P
似乎ORDER BY子句未考虑\'&\'。有谁知道这是否是预期的行为,或者我是否缺少某些配置步骤?我知道有人需要使用&号进行插入或更新。但是问题是角色已经在桌子上了!
预先谢谢大家。
没有找到相关结果
已邀请:
2 个回复
补蹲农界维
确实会影响您选择的语言。某些字符根据其语言而具有不同的值。对于二进制文件,可以使用ascii值进行排序。
死搭胯
并且NLS_SORT =(空)。