Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Qual é a capacidade do MS SQL Server semelhante à função MySQL FIELD()?


Use uma expressão 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

Você pode usar esta sintaxe para uma avaliação mais complexa (incluindo combinações, ou se precisar usar 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