sql >> Databáze >  >> RDS >> Sqlserver

Podmíněné SQL ORDER BY ASC/DESC pro alfa sloupce

Jedna možnost

;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

Nebo CASE, který je IMHO trochu ošklivější

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


  1. CAST a IsNumeric

  2. SQL pro řazení alfanumerického řetězce podle číselné části

  3. Jak nainstalovat localdb samostatně?

  4. Nelze zahodit cizí klíč v MySQL