sql >> Databasteknik >  >> RDS >> Sqlserver

Beställ efter och olika typer i ett CASE

En CASE-sats måste lösas till endast en datatyp. Detta oavsett det faktum att du vet att @orderby endast kommer att välja en gren och det kommer att vara en viss datatyp.

Du kan använda något sånt här, vilket skulle vara klumpigt men kommer att fungera.

ORDER BY
CASE @orderBy WHEN 1 THEN received_date -- Last Rx'd message
WHEN 2 THEN 0
WHEN 3 THEN 0
WHEN 4 THEN 0
WHEN 5 THEN ime.[allocated_date] -- Allocated Date
ELSE received_date END,
CASE @orderBy WHEN 1 THEN 0
WHEN 2 THEN message_id -- Message Id
WHEN 3 THEN 0
WHEN 4 THEN 0
WHEN 5 THEN 0
ELSE 0 END,
CASE @orderBy WHEN 1 THEN ''
WHEN 2 THEN ''
WHEN 3 THEN zibmat.short_name -- Message action type
WHEN 4 THEN error_action.short_name -- Status type
WHEN 5 THEN ''
ELSE '' END


  1. T-SQL MERGE Prestanda i typiska publiceringssammanhang

  2. Java MySQL - Named Pipe-anslutning varnar vid stängning

  3. Gruppera och jämför numret från strängkolumnen

  4. Fel odefinierad metod `to_key' för [xxx] :Array när man försöker använda arraydata på Active Admin table_for (Rails, Postgresql, postgres_ext gem)