简体   繁体   中英

Conditional Field in MS Access

I have the following SQL Query in MS Access

SELECT 
   Laufzettel.ANTRAGSNUMMER, 
   Laufzettel.Versicherungsnummer, 
   DP.DUNKEL,   
   Laufzettel.AEingangDatenstromZWorkflow,
   Laufzettel.BEingangesigniertDokumentZWorkflow,
   Laufzettel.CAusgangDatenstromZWorkflow,
   Laufzettel.DAnlageSchwebeVSL, 
   Laufzettel.EPolicierungVSL
FROM 
   DP, Laufzettel;

The DP.DUNKEL is just a single value 1. I want the DP.DUNKEL to be displayed only when Laufzettel.EPolicierungVSL is not NULL else display 0. How can I achieve this as I can't find IF ELSE condition in SQL?

In MS Access you can use the inline IIF(condition,true,false)

in your case.

  SELECT 
        Laufzettel.ANTRAGSNUMMER,
       Laufzettel.Versicherungsnummer,
      IIF(ISNULL(Laufzettel.EPolicierungVSL),1,0) AS dunkel
      , Laufzettel.AEingangDatenstromZWorkflow
      , Laufzettel.BEingangesigniertDokumentZWorkflow
      , Laufzettel.CAusgangDatenstromZWorkflow
      , Laufzettel.DAnlageSchwebeVSL
      , Laufzettel.EPolicierungVSL
  FROM Laufzettel;

Note : since your dunkle column can be calculated, you don't need the DP table. (or at least I don't see any need for it in your SQL)

could be using swithc

  SELECT 
        Laufzettel.ANTRAGSNUMMER
      , Laufzettel.Versicherungsnummer
        Switch(
          Not IsNull (Laufzettel.EPolicierungVSL),  DP.DUNKEL
          IsNull (Laufzettel.EPolicierungVSL),  0 
          ) AS dunkel
      , Laufzettel.AEingangDatenstromZWorkflow
      , Laufzettel.BEingangesigniertDokumentZWorkflow
      , Laufzettel.CAusgangDatenstromZWorkflow
      , Laufzettel.DAnlageSchwebeVSL
      , Laufzettel.EPolicierungVSL
  FROM DP, Laufzettel;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM