请问关于ORDER by排序的问题

bbl198486 2010-01-06 04:29:15
我有一个项目 需要对楼门号排序 楼门号是 varchar2类型
如果 楼门号是 0~9这样的自然数
或者 A1~A9这样有规则的 字符串 排序很正常 但是
如果 是 A11,A12,B1,B2,A01,A02排出来的顺序就会是这样的 A1开头的在最前面 后面是 B开头的 然后 才是 A0开通的
想问问 这个 如何解决? 这是为什么?
...全文
91 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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前面。你怎么整出如此神奇的顺序的?

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧