sql >> Database teknologi >  >> RDS >> Sqlserver

Kombination af flere tilstande i enkelt case-sætning i SQL Server

Du kan sætte betingelsen efter WHEN klausul, som sådan:

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

Selvfølgelig kunne argumentet fremføres, at komplekse regler som denne hører hjemme i dit forretningslogiklag, ikke i en lagret procedure i databasen...



  1. Hvad er der galt med min SQL her? #1089 - Forkert præfiksnøgle

  2. Forespørgselsgruppe efter par af kolonneresultater

  3. Er der en hurtigere måde at indlæse mysqldums på?

  4. Hvordan forbinder man to tabeller baseret på delstrengværdier af felter?