Sql 按几列顺序排列的大小写
使用case-then块,我需要选择如何按Sql 按几列顺序排列的大小写,sql,sql-server-2008,tsql,sql-order-by,case-when,Sql,Sql Server 2008,Tsql,Sql Order By,Case When,使用case-then块,我需要选择如何按[status]ASC、[date]DESC或只按[date]DESC排序SQL 2008查询 我只知道如何使用一列: SELECT * FROM table ORDER BY CASE WHEN @flag = 0 THEN R.[date] END DESC, CASE WHEN @flag = 1 THEN R.[status] END ASC 如何在第二种情况下使用这两个列? 如果你的旗帜是0,那
[status]ASC、[date]DESC
或只按[date]DESC
排序SQL 2008查询
我只知道如何使用一列:
SELECT *
FROM table
ORDER BY
CASE WHEN @flag = 0
THEN R.[date] END DESC,
CASE WHEN @flag = 1
THEN R.[status] END ASC
如何在第二种情况下使用这两个列?- 如果你的旗帜是0,那么我们将订购 by(空,r.date desc)
- 如果没有,我们将 订购人(r.状态,r.日期说明)
SELECT *
FROM table
ORDER BY
CASE WHEN @flag = 0 THEN r.Status ELSE null END,
r.[date] desc
通常,要放入条件排序,只需重复CASE语句
SELECT *
FROM table
ORDER BY
CASE WHEN @flag = 0 THEN R.[date] END DESC,
CASE WHEN @flag = 0 THEN R.[somethingelse] END ASC,
CASE WHEN @flag = 1 THEN R.[status] END ASC
;
但在你的例子中,“日期”的重叠意味着你可以像大卫B的评论那样简化它