根据SQL中的字符串中的数字值排序

时间:2016-09-24 03:14:53

标签: sql sql-server

我有这些CB1-15值,但我想通过... CB1-15订购它们,但目前它是CB1,CB10,CB11等。

这就是我的表格......

Twitter

感谢您的帮助:)

3 个答案:

答案 0 :(得分:6)

使用以下脚本。

  SELECT * 
  FROM  YourTable
  ORDER BY CAST(Replace(YourColumn,'CB','')as INT)

答案 1 :(得分:2)

有些不清楚这些数据是多列还是单个字符串。这两种方法都适用于两种情况:

select *
from yourtable
order by cast((substring(yourfield, 3, 2)) as int)

关键是使用cast order by int代替字符串。

答案 2 :(得分:0)

另一个简单的方法是做排序:

order by len(col), col

如果你想下降:

order by len(col) desc, col desc