我想使用order by clause
按照排序顺序返回我的表的'id'列值,例如'1,2,3,4 ..'但是以下查询返回id的顺序' 1,10,100,101,102 ......'
select id from loginuser order by id;
我可以知道我可以获得理想的输出吗?
答案 0 :(得分:7)
您的id列的类型为varchar,请尝试在order by子句中转换为int以获得所需的结果。
答案 1 :(得分:2)
如果可能,您应该更改数据库中的列类型。
答案 2 :(得分:0)
添加到@ Greco的答案,最好将排序顺序公开给调用者。无论如何,使用ORDER BY
子句中的表达式违反了SQL标准。因此,请考虑以下替代方案:
SELECT id, CAST(id AS INTEGER) AS sort_col
FROM loginuser
ORDER
BY sort_col;