动态排序,多个字段

菲利普

我的一个SQL查询中有以下语句:

      CASE WHEN @Ordering = 'asc' THEN YEAR(TimeIn) ASC, DATEPART(WEEK, TimeIn) ASC END,
      CASE WHEN @Ordering = 'desc' then YEAR(TimeIn) DESC, DATEPART(WEEK, TimeIn) DESC END

但我收到一个错误:

消息156,级别15,状态1,过程行43 [Batch Start Line 4]在关键字“ ASC”附近的语法不正确。

我尝试搜索示例,但是它们都与一个领域相关,而不是我尝试在其中涉及的多个领域。

谁能建议我如何纠正上述问题?

蒂姆·施密特

您可以重复同样的操作CASE,其方向位于END之后CASE

ORDER BY  CASE WHEN @Ordering = 'asc'  THEN YEAR(TimeIn)           END ASC, 
          CASE WHEN @Ordering = 'asc'  THEN DATEPART(WEEK, TimeIn) END ASC,
          CASE WHEN @Ordering = 'desc' THEN YEAR(TimeIn)           END DESC, 
          CASE WHEN @Ordering = 'desc' THEN DATEPART(WEEK, TimeIn) END DESC  

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章