我有一个SQL语句,通过id按升序对表进行排序,但是当我这样做时,表格显示如下:
c-10
c-12
c-12
c-24
c-5
c-6
c-80
c-800
c-8000
因为这表明前几个和下几个是有序的而不是另一个。为什么是这样?正如我已经尝试通过表格中的其他字段进行排序而它们看起来很好,这只是本专栏。你认为这可能是输入错误或其他什么?
非常感谢你的帮助!
答案 0 :(得分:1)
顺序没问题,sql按词汇顺序对字符串进行排序。
当2(在c-24中)出现在5之前(在c-5中)时,它就像那样排序。
如果你想在数字顺序中对这样的stings进行排序,请用零填充它们。
c-0010 c-0012 c-0012 c-0024 c-0005 c-0006 c-0080 c-0800 c-8000将根据需要进行分类。答案 1 :(得分:1)
select column
from your_table
order by to_number(regexp_substr(column, '\d+'))