sql如何让字符串的数字按照int类型的来排序

2019-11-25 07:59发布

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这样子的排法。

6条回答
聊天终结者
2楼-- · 2019-11-25 08:30

首先要先确定你的数据格式!你的样例数据太少,无法知道你所有的数据格式。

如果都是字母-数字-数字,可以新存储为3个字段,然后用order by排序;

查看更多
爱情/是我丢掉的垃圾
3楼-- · 2019-11-25 08:39

照上面学下,入门是没有问题的了。以后的路就得靠你自己了。

查看更多
beautiful°
4楼-- · 2019-11-25 08:43

直接order by 列名 就可以的,

字符串的排序,是先比较第一位,然后第二位,然后第三位的......

查看更多
beautiful°
5楼-- · 2019-11-25 08:45

是不是有规律的字符串 ? 是,试试:

A-1-1  =>A-1-01

A-1-2  =>A-1-02

A-1-11 =>A-1-11  

再排序

查看更多
相关推荐>>
6楼-- · 2019-11-25 08:46

自己写个 PARSE(SQL 2012 的系统函数里有) 函数。

SELECT PARSE('A-1-1') AS F1 FROM T ORDER BY F1

PARSE的转换,可以根据你的需求设置为列的一种:

1, 把 'A-1-1'形式转换为 'A-01-01',把数字按等宽补齐 0 ,补齐多少位,视你的实际需求设置。

查看更多
Viruses.
7楼-- · 2019-11-25 08:48

 Launcher  的回复可以解决楼主的问题.字符排序,只要格式一致,可以达到int的效果。

查看更多
登录 后发表回答