SQL排序,字段值里面既有数字,也有字母,还有数字字母组合,例如 A-1-1,A-1-11,A-1-2
要实现 A-1-1,A-1-2,A-1-11这样的排序,如何解决,直接排序都是 A-1-1,A-1-11,A-1-2这样子的排法。
相关问题
-
List
排序 - 一个简单的sql语句问题,
- mssql-cli 导入 sql 脚本时报错
- sql server reporting service 2017 配置web服务url和数据库后后
- BI预测值会产生多少?
首先要先确定你的数据格式!你的样例数据太少,无法知道你所有的数据格式。
如果都是字母-数字-数字,可以新存储为3个字段,然后用order by排序;
照上面学下,入门是没有问题的了。以后的路就得靠你自己了。
直接order by 列名 就可以的,
字符串的排序,是先比较第一位,然后第二位,然后第三位的......
是不是有规律的字符串 ? 是,试试:
A-1-1 =>A-1-01
A-1-2 =>A-1-02
A-1-11 =>A-1-11
再排序
自己写个 PARSE(SQL 2012 的系统函数里有) 函数。
SELECT PARSE('A-1-1') AS F1 FROM T ORDER BY F1
PARSE的转换,可以根据你的需求设置为列的一种:
1, 把 'A-1-1'形式转换为 'A-01-01',把数字按等宽补齐 0 ,补齐多少位,视你的实际需求设置。
Launcher 的回复可以解决楼主的问题.字符排序,只要格式一致,可以达到int的效果。