sql >> Database >  >> RDS >> Sqlserver

Bestellen op en verschillende soorten in een CASE

Een CASE-instructie moet worden omgezet in slechts één gegevenstype. Dit is ongeacht het feit dat u weet dat @orderby slechts één vertakking zal kiezen en dat dit een bepaald gegevenstype zal zijn.

Je zou zoiets als dit kunnen gebruiken, wat onhandig zou zijn, maar zal werken.

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. Geldt de limiet voor het maximale aantal SQL-jointabellen voor de hele query of worden subquery's afzonderlijk geteld?

  2. Yii2 RBAC Meerdere toewijzingen voor elke gebruiker op basis van groepen

  3. Is dit genoeg voor een veilige site? (4 kleine functies)

  4. MySQL:SELECT-rijen bulksgewijs met meerdere paren in de WHERE-clausule