sql - 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,
解决方案
您需要添加其他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
推荐阅读
- android-databinding - 如何将 XML 小部件 ID 传递给 ViewModel?
- javascript - 如何在反应中导入根路径之外的组件?
- android - 如何更改滑块字体样式?
- oracle - 错误消息-PLS-00103:在预期以下情况之一时遇到符号“LOOP”:如果
- amazon-web-services - AWS 在构建过程中动态读取 buildspec.yml 文件中的参数存储值
- node.js - 节点js中的异步等待函数返回空白数组问题
- swift - 如何在 SWIFT 中创建可绑定的自定义对象?(符合 ObservableObject)
- python - 递归函数不返回python中的最新值
- rust - 在地图中存储异步回调
- cakephp - cakephp4 路由到未知路径