首页 > 解决方案 > ORDER BY 多列

问题描述

我的 sql 语句中有以下内容

ORDER BY 
    CASE WHEN @OrderColumn = 'PointName' AND @Ordertype = 'ASC' THEN CD.PointName END ASC, 
    CASE WHEN @OrderColumn = 'Name' AND @Ordertype = 'ASC' THEN CD.Name END DESC,
    CASE WHEN @OrderColumn = 'ParName' AND @Ordertype = 'ASC' THEN P.ParName  END ASC,
    ...

当@OrderCoumng 是“PointName”时,我需要按 CD.PointName 和 CD.PointPerson 排序

我尝试执行以下操作,但出现错误(ASC 附近的语法不正确):

CASE WHEN @OrderColumn = 'PointName' AND @Ordertype = 'ASC' THEN CD.PointName, CD.PointPerson END ASC,  

标签: sqlsql-server

解决方案


您需要添加其他case表达式:

 CASE WHEN @OrderColumn = 'PointName' AND @Ordertype = 'ASC' THEN CD.PointName END ASC,
 CASE WHEN @OrderColumn = 'PointName' AND @Ordertype = 'ASC' THEN CD.PointPerson END ASC

推荐阅读