sql >> Database >  >> RDS >> Sqlserver

Combineren van meerdere voorwaarden in een enkele case-instructie in Sql Server

U kunt de voorwaarde achter de WHEN . zetten clausule, zoals zo:

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
  ....

Natuurlijk zou het argument kunnen worden gemaakt dat complexe regels zoals deze in uw bedrijfslogica-laag thuishoren, niet in een opgeslagen procedure in de database...



  1. Oracle-datum aftrekken

  2. MySQL LEFT JOIN met GROUP BY en WHERE IN (subquery)

  3. Voorbeeld van een voorbereide INSERT-instructie met ruby ​​pg gem

  4. WHERE-clausules dynamisch / programmatisch aan SQL toevoegen