Conditional SQL ORDER BY ASC/DESC for alpha columns

前端 未结 2 1875
南方客
南方客 2020-12-03 11:38

Writing a stored procedure in MS SQL Server 2008 R2, I want to avoid using DSQL...

I would like the sort method (ASC or DESC) to be conditional.

Now, with a

2条回答
  •  鱼传尺愫
    2020-12-03 12:03

    One option

    ;WITH cQuery AS
    (
       SELECT
           *,
           ROW_NUMBER() OVER (ORDER BY SortColumn) AS RowNum
       FROM
           MyTable
    )
    SELECT
       *
    FROM
       cQuery
    ORDER BY
       RowNum * @Direction --1 = ASC or -1 = DESC
    

    Or CASE which IMHO is a bit uglier

    ORDER BY
      CASE WHEN 'ASC' THEN SortColumn ELSE '' END ASC,
      CASE WHEN 'DESC' THEN SortColumn ELSE '' END DESC
    

提交回复
热议问题