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