sql >> Databasteknik >  >> RDS >> Sqlserver

Kombinera flera villkor i en case-sats i SQL Server

Du kan sätta villkoret efter WHEN klausul, som så:

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

Naturligtvis kan argumentet framföras att komplexa regler som dessa hör hemma i ditt affärslogiklager, inte i en lagrad procedur i databasen...



  1. Regler är utfasade, vad är istället (TSQL)?

  2. Postgresql sekventiell skanning långsam prestanda på 500 miljoner rader

  3. pdo lastInsertId returnerar noll(0)

  4. Mysql 1 slumpmässig rad