强制某些行结束但保持排序顺序

时间:2014-12-09 19:16:23

标签: sql

此问题的一个变体之前已被问过,人们建议order by case when ...将某个值指定为0或1,以便将其强制结束。但是,根据我的需要,值应该在结果的末尾,并且必须以与它们上面的结果相同的方式排序。

这就是我被要求提取数据的方式:

上半场:包含除column1='xyz'order by column2, column3, column1

之外的所有行

下半场:仅包含column1='xyz'order by column2, column3, column1

的行

所有这些值都在一组结果中。有没有办法在SQL中完全执行此操作?或者我是否需要创建两个单独的查询并将两者一起添加?

感谢。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您可以使用case和其他列进行排序:

order by (case when column1 = 'xyz' then 1 else 0 end),
         column2, column3, column1