Sorting 以文本作为编号的oracle排序 我的NLS设置: 简单测试查询: 实际结果: 预期结果: 问题:
是否有Sorting 以文本作为编号的oracle排序 我的NLS设置: 简单测试查询: 实际结果: 预期结果: 问题:,sorting,oracle11gr2,nls-sort,nls-comp,Sorting,Oracle11gr2,Nls Sort,Nls Comp,是否有NLS设置可以帮助我获得期望的结果?我知道我可以按to_number(x)排序,或者更好的是,按lpad(x,5)排序,但在这种情况下并不好-我需要一个不需要更改查询的系统范围的解决方案 我尝试的是: 按nlssort排序(x,'nls_sort=binary') alter session set nls_sort='binary' 也许是一个有点奇怪的解决方案,但是 将表\u某物重命名为表\u其他 创建一个视图表,\u在表\u OTHER的顶部创建一个视图表,\u OTHER将把您的
NLS
设置可以帮助我获得期望的结果?我知道我可以按to_number(x)排序,或者更好的是,按lpad(x,5)排序,但在这种情况下并不好-我需要一个不需要更改查询的系统范围的解决方案
我尝试的是:
- 按nlssort排序(x,'nls_sort=binary')代码>
alter session set nls_sort='binary'代码>
- 将表\u某物重命名为表\u其他
- 创建一个视图表,\u在表\u OTHER的顶部创建一个视图表,\u OTHER将把您的有问题的字符串列添加到相同的列名
- 如果表在应用程序范围内被修改,则在视图表上创建而不是触发器
- 重新编译可能无效的包
- 也许是一个有点奇怪的解决方案,但是
在修改大量记录时不会特别有效,不允许截断表,但可能会解决排序问题。为什么不删除撇号?@LajosVeres:)问题是我在DB中有数字作为文本。您尝试过nls_sort=binary吗?是,请参阅编辑后的问题。那么我认为没有任何全局内置配置用于您的目标。。。
NLS_SORT POLISH
NLS_COMP BINARY
select * from (
select '11117' as x from dual
union
select '12988' as x from dual
union
select '14659' as x from dual
union
select '1532' as x from dual
union
select '18017' as x from dual
) order by x;
x
-----
11117
12988
14659
1532
18017
x
-----
1532
11117
12988
14659
18017