sql - 具有多列和 Desc/Asc 排序的 Order By 子句的 CASE 语句

标签 sql sql-server-2012

继我之前的问题 Case statement for Order By clause with Desc/Asc sort我有这样的声明:

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

这很有效,但有时我需要的不仅仅是按顺序排列的列。我实际上需要这样的东西:
.....
ORDER BY
    CASE @OrderByColumn WHEN 1 THEN Forename, Date, Location END DESC

我不知道如何制作 CASE语句允许 THEN 中的多列部分。

最佳答案

你需要这个吗?

ORDER BY
    CASE @OrderByColumn WHEN 1 THEN Forename END DESC, Date, Location,
    CASE @OrderByColumn WHEN 2 THEN Surname END ASC 

关于sql - 具有多列和 Desc/Asc 排序的 Order By 子句的 CASE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26048976/

相关文章:

sql-server-2012 - 如何在 SQL Server 2012 中启用 -T1118 跟踪标志?

c# - 错误的连接字符串 NHibernate 3.3

mysql - 将变量传递给 KNIME 中的 SQL 语句

mysql - 仅当值不存在时返回行

sql - mysql - 从一个表中选择所有内容,并从另一个表中选择一列,其中找到 $var

t-sql - MS SQL Server 2008/2012 获取任意两个值之间的最小差异

sql - 将所有与不存在的并入并插入

sql - postgresql 两个 NOT LIKE 子句返回错误结果

mysql - 如何将一个月加两个月

asp.net - 总结历史正常运行时间数据