我有这样的记录:
LEGO 9
LEGO 4
LEGO 5
LEGO 7
LEGO 12
LEGO 13
LEGO 14
LEGO 15
LEGO 10
LEGO 11
LEGO 3
LEGO 1
LEGO 2
LEGO 6
LEGO 8
我希望将它们排序为ASC
LEGO 1
LEGO 2
LEGO 3
LEGO 4
LEGO 5
LEGO 6
LEGO 7
LEGO 8
LEGO 9
LEGO 10
LEGO 11
LEGO 12
LEGO 13
LEGO 14
LEGO 15
当我在下面使用此语句查询时,排序不正确:
SELECT * FROM WA_LEG_TBL_LINES ORDER BY LINENAME ASC
LEGO 1
LEGO 10
LEGO 11
LEGO 12
LEGO 13
LEGO 14
LEGO 15
LEGO 2
LEGO 3
LEGO 4
LEGO 5
LEGO 6
LEGO 7
LEGO 8
LEGO 9
声明有什么问题吗?我想按LINENAME ASC
订购。
答案 0 :(得分:1)
这就是字符串排序的工作原理。
如果列中的所有行都有文本LEGO
,则可以删除结果并将其转换为数字并按其排序。
select *
from WA_LEG_TBL_LINES
order by cast(replace(linename, 'LEGO ') as number);