我有一个查询说
select * from table order by numbers asc
数字是:32,-,11,76,-
我得到的是-,-,11,32,76
(开头的连字符)
我在查询中如何更改,以便最后得到连字符?
答案 0 :(得分:2)
首先,我尝试使用类型转换的条件流进行排序
SELECT * FROM `table` ORDER BY numbers = '-', numbers+0 asc
如果你想要反向否定条件流
SELECT * FROM `table` ORDER BY numbers != '-', numbers+0 asc
答案 1 :(得分:1)
您将数字存储为varchar(),当您拥有1,11,9,5...
等数据时会遇到更多问题,并且订购时会有1,11,5,9...
以下是如何管理它
select * from table_name
order by case when numbers ='-' then 2 else 1 end,numbers+0 ;