SQL排序问题,我的数据有1 , 1.1 , 1.1.2 ,2 , 2.1 ,3, 3.1 ,3.2,……10.1,10.1.1,11.1.1

我的数据有1 , 1.1 , 1.1.2 ,2 , 2.1 ,3, 3.1 ,3.2,……10.1,10.1.1 ,11.1.1,我应该怎么排序呢,我想拍出来的效果就是上面那样~但数据都是乱的
后面有多少个.也是不确定的

新建一个函数,将数据转化成 001,001001,001001002,002,002001,003,003001,然后按照字符来排序就好了追问

这思路可以~能帮我写出这函数吗

追答

代码给你放在附件里面了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-14
思路:
1:把'.'换成一个ascii值大于数值的字符,例如'A'等都可以。
2:把所有字符串右补齐到32位(假设最长就32位)
3:把各字符串按照从小到大排序

具体语句自己写吧,各种函数嵌套就可以了。
第2个回答  2013-06-14

查询出来本来就是这个样子啊,

追问

第一组数据大于10以后就不对了

追答

我的是可以的。。。

 

追问

后面多加几个点都可以吗?

第3个回答  2013-06-14
order by 列名 asc 正序
order by 列名 desc 倒序
如果只有一列 直接就order by 就可以,默认正序追问

第一组数据大于10以后就不对了

追答

你的这些数据是同一列吗?是什么类型?

第4个回答  2013-06-14
select * from biaoming order by asc
相似回答