请问关于ORDER by排序的问题

bbl198486 2010-01-06 04:29:15
我有一个项目 需要对楼门号排序 楼门号是 varchar2类型
如果 楼门号是 0~9这样的自然数
或者 A1~A9这样有规则的 字符串 排序很正常 但是
如果 是 A11,A12,B1,B2,A01,A02排出来的顺序就会是这样的 A1开头的在最前面 后面是 B开头的 然后 才是 A0开通的
想问问 这个 如何解决? 这是为什么?
...全文
78 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
huangyunzeng2008 2010-01-06
  • 打赏
  • 举报
回复
不会有楼主说的情况的
crazylaa 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 java3344520 的回复:]
A11,A12,B1,B2,A01,A02
排出来的A01,A02,A11,A12,B1,B2
是比较每个字符的ASCII码排列的,所以一定先是对比第一位A和B,然后在第二位,在第三位
[/Quote]
一般都是这个,楼主贴出数据及sql看看?记得用代码模式,否则空格看不出来的
lovelrforever 2010-01-06
  • 打赏
  • 举报
回复
不会吧,排序不正常?
小灰狼W 2010-01-06
  • 打赏
  • 举报
回复
语句怎么写的?字母大小写都一致?
字符型字段的排序按起始字符开始,相同的比较第二个字符,往后类推
一般不会出现楼主说的情况
iqlife 2010-01-06
  • 打赏
  • 举报
回复
A11,A12,B1,B2,A01,A02
排出来的A01,A02,A11,A12,B1,B2
是比较每个字符的ASCII码排列的,所以一定先是对比第一位A和B,然后在第二位,在第三位
fatfoxz 2010-01-06
  • 打赏
  • 举报
回复
varchar2只听说过有10排在2前面的问题,应该没有楼主说的情况。
fatfoxz 2010-01-06
  • 打赏
  • 举报
回复
说反了吧?
order by结果应该是A0=>A1=>B
suiziguo 2010-01-06
  • 打赏
  • 举报
回复
怎么可能。我测试过了,默认ASC排序,A开头的肯定在B开头的前面,同样是A开头的,A0在A1前面。你怎么整出如此神奇的顺序的?
发帖
Oracle 高级技术

3472

社区成员

Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
帖子事件
创建了帖子
2010-01-06 04:29
社区公告
暂无公告