这是我的数据;
type valid blocked
--------- ----- --------
CPI 0 0
CPI 1 0
CPI 0 1
CPI 1 1
CPA 0 0
CPA 1 0
CPA 0 1
CPA 1 1
CPE 0 0
CPE 1 0
CPE 0 1
CPE 1 1
PIN 0 0
PIN 1 0
PIN 0 1
PIN 1 1下面是我想要解决的问题;
type valid blocked
--------- ----- --------
CPI 1 0
CPA 1 0
CPI 1 1
CPA 1 1
CPI 0 0
CPA 0 0
CPI 0 1
CPA 0 1
CPE 1 0
CPE 1 1
CPE 0 0
CPE 0 1
PIN 1 0
PIN 1 1
PIN 0 0
PIN 0 1因此,CPI和CPA先按有效排序,再按未阻塞排序。接下来,它的CPI按“有效”、“未阻塞”和“最终PIN”排序,再次按“有效”和“未阻塞”排序。
在一个查询中可以这样排序吗?谢谢。
发布于 2015-02-23 12:19:51
select * from your_table
order by case when type in ('CPI','CPA') then 1
when type = 'CPE' then 2
when type = 'PIN' then 3
end,
valid <> 0,
blocked发布于 2015-02-23 13:27:11
select * from your_table
order by `type` in ('CPI','CPA') desc
, `type` = 'CPE' desc
, `type` = 'PIN' desc
, valid desc, blocked
, `type` = 'CPI' desc
;https://stackoverflow.com/questions/28673658
复制相似问题