我在 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 子句似乎没有考虑“&”。有谁知道这是预期的行为还是我缺少一些配置步骤?我知道需要为插入或更新转义与号。但问题是角色已经在桌子上了!
提前谢谢各位。