oracle 10g在前面包含数字时订购varchar列
发布时间:2020-12-12 13:14:58 所属栏目:百科 来源:网络整理
导读:我有一个Oracle 10g数据库并且有一个VARCHAR2(2000字符)列,可以命名为TEST,它可以包含前面的数字,例如: test1test3test 当我打电话给“…由TEST asc订购”或简称“……由TEST订购”时 我得到的结果如下 test1test3test 但是我希望得到这样的结果: 1test3te
我有一个Oracle 10g数据库并且有一个VARCHAR2(2000字符)列,可以命名为TEST,它可以包含前面的数字,例如:
test 1test 3test 当我打电话给“…由TEST asc订购”或简称“……由TEST订购”时 我得到的结果如下 test 1test 3test 但是我希望得到这样的结果: 1test 3test test 所以首先编号插入,是否有一种方法来实现这个? 解决方法你的 NLS_SORT是什么设置的? (从dual中选择sys_context(‘USERENV’,’NLS_SORT’).如果它是BINARY,则排序顺序基于每个字符的数值,因此它取决于数据库字符集.如果它是其他东西,那么你可能想要覆盖它.您可以通过修改该参数来更改数据库或会话级别的排序顺序,但您也可以针对单个查询更改它: order by nlssort(test,'NLS_SORT=BINARY') 根据您的字符集,您可能需要尝试使用不同的值而不是BINARY.您可以使用v $nls_valid_values中的select值获取所有有效值的列表,其中parameter =’SORT’.但请注意NLS_SORT文档中提到的潜在性能影响. nlssort()函数记录在here中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |