包含字母和数字的SQLite排序varchar

时间:2016-01-12 22:32:43

标签: sql sqlite sql-order-by

我有一个表格,其中包含包含此数据的字段traffic_num(varchar

A100
A586
A4594
A125
A2
A492

现在我想按升序对数据进行排序。如果traffic_num仅包含数字(没有字母A),那么我可以将varchar转换为integer CAST(traffic_num as SIGNED INTEGER) ASC。但是在这种情况下该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以使用substr按第一个字母字符排序,然后按照后面的数字排序。

select * from tablename
order by substr(traffic_num,1,1), cast(substr(traffic_num,2) as signed integer)

答案 1 :(得分:1)

执行此操作的一种简单方法是按长度排序,然后按值排序:

order by length(traffic_num), traffic_num

当值为整数时,此方法有效。