sql >> Database teknologi >  >> RDS >> Sqlserver

Dynamisk ordreretning

Du kunne have to næsten identiske ORDER BY elementer, en ASC og en DESC , og udvide din CASE sætning for at gøre den ene eller den anden af ​​dem altid lig med en enkelt værdi:

ORDER BY
      CASE WHEN @OrderDirection = 0 THEN 1
      ELSE
           CASE WHEN @OrderByColumn = 'AddedDate' THEN CONVERT(varchar(50), AddedDate)
                WHEN @OrderByColumn = 'Visible' THEN CONVERT(varchar(2), Visible)
                WHEN @OrderByColumn = 'AddedBy' THEN AddedBy
                WHEN @OrderByColumn = 'Title' THEN Title
           END
      END ASC,
      CASE WHEN @OrderDirection = 1 THEN 1
      ELSE
           CASE WHEN @OrderByColumn = 'AddedDate' THEN CONVERT(varchar(50), AddedDate)
                WHEN @OrderByColumn = 'Visible' THEN CONVERT(varchar(2), Visible)
                WHEN @OrderByColumn = 'AddedBy' THEN AddedBy           
                WHEN @OrderByColumn = 'Title' THEN Title
           END
      END DESC


  1. Sådan fungerer UGE() i MariaDB

  2. Hvordan forespørges databasenavn i Oracle SQL Developer?

  3. Der blev ikke fundet nogen passende driver, når man inkluderer de nødvendige drivere med maven-assembly-plugin

  4. SQL, der viser alle fødselsdage inden for de næste og foregående 14 dage