我必须按多行排序表,其中一行是“自定义”。我在该列中有4个值,优先级应该是-60或151,然后是30或111.所以我只有那个特定的4个值,如果-60在151之后,它不应该被排序,如果-60在30之后,应该进行排序。
感谢。
答案 0 :(得分:4)
您可以按顺序使用案例陈述。
select SomeColumn
from YourTable
order by case custom
when -60 then 1
when 151 then 1
when 30 then 2
when 111 then 2
end
或类似的东西
select SomeColumn
from YourTable
order by nullif(nullif(custom, -60), 151)
答案 1 :(得分:1)
你可以使用这样的查询:
select *
from Table1
order by
field1,
field2,
field3,
case
when custom = -60 then 0
when custom = 151 then 0
when custom = 30 then 1
when custom = 111 then 1
end asc