带有 Desc/Asc 排序的 Order By 子句的 Case 语句

时间:2022-12-04
本文介绍了带有 Desc/Asc 排序的 Order By 子句的 Case 语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

SELECT *
FROM
    TableName
WHERE
ORDER BY 
    CASE @OrderByColumn
    WHEN 1 THEN Forename
    WHEN 2 THEN Surname
    END;

我有一个类似上面的语句,它让我可以动态地选择如何对查询结果进行排序.但是,如何指定我想要 Forename 订购的 DESC 和 Surname ASC?

I have a statement like above which lets me dynamically choose how to order the results of a query. However, how do I specify that I want the Forename ordered DESC and the Surname ASC?

推荐答案

你需要把你的ORDER BY分成两部分:

You need to split your ORDER BY in two parts:

SELECT *
FROM
    TableName
WHERE
ORDER BY 
    (CASE @OrderByColumn
    WHEN 1 THEN Forename
    END) DESC -- Forename --> descending
,   (CASE @OrderByColumn
    WHEN 2 THEN Surname
    END) ASC -- Surname --> ascending

这篇关于带有 Desc/Asc 排序的 Order By 子句的 Case 语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

上一篇:如何重命名物理数据库文件 下一篇:在对象资源管理器中看不到创建的表 - Microsoft

相关文章

最新文章