Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Im Select null oder Wert in WHERE

  Alt 26. Jan 2020, 21:45
Datenbank: Firebird • Version: 3.0 • Zugriff über: FIREDAC
Hallo Zusammen,

ich importiere Adressen in einer Tabelle. Jetzt kann es vorkommen dass die Felder Strasse, PLZ und Ort leer sind also wird in der Tabelle NULL geschrieben wird.
Beim importieren kann die erste Adresse keine Strasse haben die zwei keine PLZ die dritte komplett ohne Adresse. Sie darf natürlich nur einmal importiert werden.
Also muss ich jedes Feld dynamisch gegen ein Wert oder gegen Null prüfen. Eine Möglichkeit ist über Macros zu arbeiten.

Code:
SELECT ADRESSID
FROM ADRESSEN
WHERE VORNAME = :VORNAME
  AND NACHNAME = :NACHNAME
  AND STRASSE = :STRASSE
  AND PLZ = :PLZ
  AND ORT = :ORT

Dieses Statement müsse sich jetzt dynamisch z.B.: über Macros ändern z.B.:
SELECT ADRESSID
FROM ADRESSEN
WHERE VORNAME = :VORNAME
  AND NACHNAME = :NACHNAME
!strasseMacro
!plzMacro
!OrtMacro



if quelle.Strasse=''
then MacroByName('strasseMacro').AsRaw = 'AND STRASSE IS NULL'
else MacroByName('strasseMacro').AsRaw = 'AND STRASSE = :STRASSE';
Gibt es keine elegantere Methode?

Gruß Kostas
  Mit Zitat antworten Zitat