这是当前的排序方式:
CRI-SU1
CRI-SU10
CRI-SU11
CRI-SU2
CRI-SU3
CRI-SU4
CRI-SU5
CRI-SU6
CRI-SU7
CRI-SU8
CRI-SU9
我希望它按数字排序:
CRI-SU1
CRI-SU2
CRI-SU3
CRI-SU4
CRI-SU5
CRI-SU6
CRI-SU7
CRI-SU8
CRI-SU9
CRI-SU10
CRI-SU11
如何在SQL中对其进行排序? 这是我的sql语句...
SELECT systemUnitID FROM systemUnit ORDER BY systemUnitID
答案 0 :(得分:2)
如果前缀始终显示为“ CRI-SU”,则可以尝试使用replace()
将其替换为空字符串。然后将结果转换为带有cast()
的整数,并按转换值排序。这应该在许多DBMS中都可以使用。
SELECT systemunitid
FROM systemunit
ORDER BY cast(replace(systemunitid, 'CRI-SU', '') AS integer);
答案 1 :(得分:1)
SELECT systemUnitID
FROM systemUnit
ORDER BY CAST(REPLACE(systemUnitID, 'CRI-SU', '') As int)