SQL在字符串中按整数排序

时间:2014-09-02 23:30:10

标签: sql sql-order-by

我有一个我的结果正在排序的字符串。它由房间号,居民姓名和其他一些领域组成。

示例:

460, Bob Jones, ......
5, John Doe, .....

问题是,当我按照这种方式订购时,它会以较小的数字开头,以小数字开头(即,在5之前放置460)。如何让sql处理字符串中的整个整数并根据整个数字进行排序,而不仅仅是第一个数字值?

1 个答案:

答案 0 :(得分:1)

您可以通过将字符串的初始部分转换为数字来完成此操作。但是,这取决于数据库。例如,在MySQL中,只需添加+ 0

即可将值转换为整数
order by string + 0

在其他数据库中,您需要使用逗号并进行转换。例如,在SQL Server中:

order by cast(left(string, charindex(',', string) - 1) as int)