从数字中删除结束字母,并进行排序

时间:2011-12-06 23:49:07

标签: sql

我的表中有一列包含如下所示的座位号:10D,4E,12A..etc 我试图取消结束字母,并按升序排序。我的下面的代码取消了结束信,但它没有正确排序。 它命令他们这样: 10 12 13 3 4 7 8

    select distinct rtrim(col_name(col_name, 1, LENGTH(col_name) - 1)) as "Row" from table
    order by rtrim(substr(col_name, 1, LENGTH(col_name) - 1));

1 个答案:

答案 0 :(得分:4)

您需要转换为数字类型才能获得数字排序。例如

order by cast(rtrim(substr(col_name, 1, LENGTH(col_name) - 1)) as int);

假设您的RDBMS支持强制转换为int。如果是MySQL,您可以使用UNSIGNED代替int