Oracle varchar 字段排序问题,oraclevarchar
数据库字段:
想要的结果:
实际查询的结果:
解决方法:使用CAST函数把varchar2转为int类型
order by CAST(CODE AS INTEGER)
select 字段 from (
select 字段,ascii(字段) b from 表名 where ascii(字段)<=48 or ascii(字段)>=57
union all
select 字段,cast(字段 as int) b from 表名 where ascii(字段)>=48 and ascii(字段)<=57)c
order by b
如果你的日期格式是规范的“2012年08月28日”格式可以直接用来排序,没有问题的。
如果你的日期格式不是规范的“2012年8月28日”格式,需要转换两次就可以了。
例:to_char(to_date('2012年8月28日','YYYY"年"MM"月"DD"日"'),'YYYYMMDD')
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。