我有一张像
这样的表格city | pincode
abcd | 123456
xyz | 326545
asd | 625844
city | 999999
我希望结果与所选的pincode
第一个
如果我选择pincode
625844
哪个城市为asd
,则必须先显示
期望的输出:
city | pincode
asd | 625844 <<-- this is selected pincode must be first
abcd | 123456
xyz | 326545
city | 999999
答案 0 :(得分:3)
ORDER BY
(pincode = @mypincode) DESC,
pincode
答案 1 :(得分:3)
select * from tbl
order by (case when pincode = '625844' then 0 else 1 end), pincode
或者如果所选的pincode作为参数@pincode传入,这应该可以正常工作
select * from tbl
order by (case when pincode = @pincode then 0 else 1 end), pincode
答案 2 :(得分:1)
( select * from pincodes where pincode = ? )
union all
( select * from pincodes where pincode !=? order by pincode asc )
在查询中使用必需的pincode
值作为搜索参数。
答案 3 :(得分:1)
....
ORDER BY (case when pincode = @pincode then 0 else 1 end), pincode asc
答案 4 :(得分:0)
为所有邮政编码指定权重,并将最小权重分配给您想要的邮政编码。
答案 5 :(得分:0)
您需要按以下顺序声明:
order by (case when pincode in (<selected pin codes>) then -1
else pincode
end)
我假设密码是一个正数,并选择-1,所以它首先出现。