sql – 具有Desc / Asc排序的Order By子句的Case语句

前端之家收集整理的这篇文章主要介绍了sql – 具有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?

解决方法

您需要将ORDER BY拆分为两部分:
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

猜你在找的MsSQL相关文章