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

Combinaison de plusieurs conditions dans une seule instruction de cas dans Sql Server

Vous pouvez mettre la condition après le WHEN clause, comme ceci :

SELECT
  CASE
    WHEN PAT_ENT.SCR_DT is not null and PAT_ENTRY.ELIGIBILITY is null THEN 'Favor'
    WHEN PAT_ENT.SCR_DT is not null and PAT_ENTRY.EL = 'No' THEN 'Error'
    WHEN PAT_ENTRY.EL = 'Yes' and ISNULL(DS.DES, 'OFF') = 'OFF' THEN 'Active'
    WHEN DS.DES = 'N' THEN 'Early Term'
    WHEN DS.DES = 'Y' THEN 'Complete'
  END
FROM
  ....

Bien sûr, on pourrait faire valoir que des règles complexes comme celle-ci appartiennent à votre couche de logique métier, et non à une procédure stockée dans la base de données...