我有一个我的结果正在排序的字符串。它由房间号,居民姓名和其他一些领域组成。
示例:
460, Bob Jones, ......
5, John Doe, .....
问题是,当我按照这种方式订购时,它会以较小的数字开头,以小数字开头(即,在5之前放置460)。如何让sql处理字符串中的整个整数并根据整个数字进行排序,而不仅仅是第一个数字值?
答案 0 :(得分:1)
您可以通过将字符串的初始部分转换为数字来完成此操作。但是,这取决于数据库。例如,在MySQL中,只需添加+ 0
:
order by string + 0
在其他数据库中,您需要使用逗号并进行转换。例如,在SQL Server中:
order by cast(left(string, charindex(',', string) - 1) as int)