我被要求按升序对位置表进行排序。表中的数据目前看起来像这样:
- 100F01
- 105B02
- 10B01
- GK1-A01
- 201E12
- 20A01
但是,当此数据显示在屏幕上时,我希望它按升序对数字结果进行排序,然后按字母顺序对字符串结果进行排序。输出应如下所示:
- 10B01
- 20A01
- 100F01
- 105B02
- 201E12
- GK1-A01
我尝试使用以下代码
SELECT location FROM freelocations
ORDER BY CAST(SUBSTRING(location, 1, 2) AS INT)
但是,正如预期的那样,这会返回一条错误消息,因为某些位置不以数字开头:
将 varchar 值“GK”转换为数据类型 int 时转换失败。
任何想法或提示将不胜感激