请教各位:一个field : type varchar2(20);contents:漏钢1
漏钢2
漏钢3
漏钢12
排序后,漏钢12 会排到漏钢2的前面,(字符排序逐位比较),如何才能
按照正常的如上的排序方式?
谢谢!!
漏钢2
漏钢3
漏钢12
排序后,漏钢12 会排到漏钢2的前面,(字符排序逐位比较),如何才能
按照正常的如上的排序方式?
谢谢!!
解决方案 »
- 触发器中可以用游标不?
- 求助高手关于ebs forms开发的问题
- 急,Oracle 行转列问题,最后要捆绑到asp.net gridview
- 求助:PLSQL使用动态变量的问题
- 紧急求救,数据库拷贝问题
- ora-12514监听进程不能解析连接串中的servicename (这个问题困扰我一上午了)
- 请求帮助!
- Oracle 怎么查询哪个表中包含某字符串
- oracle下如何创建这样一个用户:禁止删除其他用户及其表空间的权限,但有创建其他用户及表空间的权限
- 学ORACLE的有谁想要QQ吗?
- 如何用SplPlus成功创建一个1700多行的存储过程,直接copy只能显示一部分。是不是可以执行存储过程的名字,不用把代码全copy到SplPlus?
- oracle自动恢复连接???在线等待,仅有的20分全给
lengthb(field)-length(field) 就是汉字的个数
order by field, to_number(substr(field, lengthb(field)-length(field)+1))
order by translate(field,'1234567890',' $'),TO_NUMBER(replace(field,translate(field,'1234567890',' $')))
LENGTHB('就是汉字的个数333')
----------------------------
24
1 row selected
select length('就是汉字的个数333') from dual
LENGTH('就是汉字的个数333')
---------------------------
10
1 row selected
(
select t.*, rank() over(order by substr(field, 1, lengthb(field)-length(field))) b
from table_name t)
order by b, to_number(substr(field, lengthb(field)-length(field)+1));
select to_number(substr('就是汉字的个数333', (lengthb('就是汉字的个数333')-length('就是汉字的个数333'))/2+1)) from dual
SQL> select lengthb('就是汉字的个数333') from dual;LENGTHB('就是汉字的个数333')
----------------------------
17SQL> select length('就是汉字的个数333') from dual;LENGTH('就是汉字的个数333')
---------------------------
10
要看用什么字符集的 你的是一个汉字占3个字节,我的是占两个