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

Bestil efter og forskellige typer i en CASE

En CASE-sætning skal kun løses til én datatype. Dette er uanset, at du ved, at @orderby kun vil vælge én gren, og det vil være en bestemt datatype.

Du kan bruge sådan noget, som ville være klodset, men vil fungere.

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. Næste nærmeste dato og klokkeslæt i MySQL

  2. Opdater en materialiseret visning automatisk ved hjælp af en regel eller notifikation

  3. HikariCP for mange forbindelser

  4. OPDATERE post i én database med værdier fra en anden i SQL Server 2008?