我的表中有一列包含如下所示的座位号: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));
答案 0 :(得分:4)
您需要转换为数字类型才能获得数字排序。例如
order by cast(rtrim(substr(col_name, 1, LENGTH(col_name) - 1)) as int);
假设您的RDBMS支持强制转换为int
。如果是MySQL,您可以使用UNSIGNED
代替int