Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Quelle est la fonctionnalité MS SQL Server similaire à la fonction MySQL FIELD() ?

Utilisez une expression CASE (SQL Server 2005+) :

ORDER BY CASE status
           WHEN 'active' THEN 1
           WHEN 'approved' THEN 2
           WHEN 'rejected' THEN 3
           WHEN 'submitted' THEN 4
           ELSE 5
         END

Vous pouvez utiliser cette syntaxe pour une évaluation plus complexe (y compris des combinaisons, ou si vous devez utiliser LIKE)

ORDER BY CASE 
           WHEN status LIKE 'active' THEN 1
           WHEN status LIKE 'approved' THEN 2
           WHEN status LIKE 'rejected' THEN 3
           WHEN status LIKE 'submitted' THEN 4
           ELSE 5
         END