此问题的一个变体之前已被问过,人们建议order by case when ...
将某个值指定为0或1,以便将其强制结束。但是,根据我的需要,值应该在结果的末尾,并且必须以与它们上面的结果相同的方式排序。
这就是我被要求提取数据的方式:
上半场:包含除column1='xyz'
,order by column2, column3, column1
下半场:仅包含column1='xyz'
,order by column2, column3, column1
所有这些值都在一组结果中。有没有办法在SQL中完全执行此操作?或者我是否需要创建两个单独的查询并将两者一起添加?
感谢。
答案 0 :(得分:1)
如果我理解正确,您可以使用case
和其他列进行排序:
order by (case when column1 = 'xyz' then 1 else 0 end),
column2, column3, column1