我有一个看起来像这样的表格邮政编码
Code State Region Distance
25696 1 5 150
25692 1 4 60
25691 2 3 50
25690 2 2 233
25688 3 4 450
25686 3 5 560
25685 4 7 50
12069 4 8 30
12068 4 5 60
12067 6 3 80
12066 7 1 90
现在我想对这些数据进行排序,比如如果选择了状态 4,然后首先按状态 4 区域排序,然后按距离排序,然后是其余的,无论区域如何,按距离排序。
所以结果应该是这样的
Code State Region Distance
12068 4 5 60
25685 4 7 50
12069 4 8 30
25691 2 3 50
25692 1 4 60
12067 6 3 80
12066 7 1 90
25696 1 5 150
25690 2 2 233
25690 2 2 233
25686 3 5 560
首先按升序显示 4 个地区,然后按距离排序的休息日期,无论地区、州如何。
我正在尝试以下查询
SELECT region,br.state, case when state = 4 then -1
else state end as StateOrder,
FROM zipcode
ORDER BY StateOrder,region, Distance asc;
此查询首先按排序顺序给出状态 4 区域,但其余数据也按状态和区域排序,这需要修复。
请建议。