Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi if-Abfrage bei NULL Werten (https://www.delphipraxis.net/35586-if-abfrage-bei-null-werten.html)

Hansa 9. Dez 2004 12:58


if-Abfrage bei NULL Werten
 
ich setze hiermit 2 SQL-Statements ab:

SQL-Code:
    UPDATE LAGER SET BESTAND = BESTAND + :MENGE WHERE (ID_ART = :ID_ART) AND BESTAND IS NOT NULL;
    UPDATE LAGER SET BESTAND = :MENGE WHERE (ID_ART = :ID_ART) AND BESTAND IS NULL;
Kann man das nicht mit einer If- Abfrage machen ? Es geht darum, je nachdem, ob MENGE NULL ist die entsprechende Aktion auszuführen. Also so was wie :

SQL-Code:
IF MENGE IS NULL THEN
UPDATE ....
Irgendwie geht das aber nicht. :shock:

MrSpock 9. Dez 2004 13:10

Re: if-Abfrage bei NULL Werten
 
Hallo Hansa,

ich nehme an, du nutzt Firebird!?

Eine IF Abfrage wäre dann im Rahmen einer StoredProcedure möglich.

shmia 9. Dez 2004 13:14

Re: if-Abfrage bei NULL Werten
 
Zitat:

Zitat von Hansa
ich setze hiermit 2 SQL-Statements ab:

SQL-Code:
    UPDATE LAGER SET BESTAND = BESTAND + :MENGE WHERE (ID_ART = :ID_ART) AND BESTAND IS NOT NULL;
    UPDATE LAGER SET BESTAND = :MENGE WHERE (ID_ART = :ID_ART) AND BESTAND IS NULL;
Kann man das nicht mit einer If- Abfrage machen ? Es geht darum, je nachdem, ob MENGE NULL ist die entsprechende Aktion auszuführen. Also so was wie :

SQL-Code:
IF MENGE IS NULL THEN
UPDATE ....

IF - Abfragen innerhalb einer UPDATE Anweisung funktionieren nicht.
Aber mit COALESCE oder CAST klappt es:
SQL-Code:
    UPDATE LAGER SET BESTAND = COALESCE(BESTAND, 0.0) + :MENGE WHERE (ID_ART = :ID_ART)

Jasocul 9. Dez 2004 15:38

Re: if-Abfrage bei NULL Werten
 
Falls du Oracle einsetzt:
Da heißt das Ding nvl(Bestand, 0)

Hansa 9. Dez 2004 16:40

Re: if-Abfrage bei NULL Werten
 
Zitat:

Zitat von MrSpock
Hallo Hansa,

ich nehme an, du nutzt Firebird!?

Eine IF Abfrage wäre dann im Rahmen einer StoredProcedure möglich.

Das ganze ist innerhalb einer SP. Ja, aber kein Oracle. Igitt. :???:

Nur was ist :

SQL-Code:
COALESCE
Was soll denn das sein ? :shock:

Jasocul 9. Dez 2004 17:55

Re: if-Abfrage bei NULL Werten
 
[quote="Hansa"]
Zitat:

Zitat von MrSpock
Ja, aber kein Oracle. Igitt. :???:

Warum "Igitt"?
Ich bin sehr zufrieden damit.

Leuselator 11. Dez 2004 00:09

Re: if-Abfrage bei NULL Werten
 
Code:
[b]coalesce[/b](Wert1,Wert2,...WertN)
liefert den ersten der Wertereihe (von vorn angefangen), der nicht NULL ist
wenn also
Code:
Wert1 = [color=red][b]NULL[/b][/color] und
Wert2 = [color=red][b]NULL[/b][/color] und
Wert3 = [color=green][b]'Hier bin ich'[/b][/color]
dann liefert:
Code:
[b]coalesce[/b](Wert1,Wert2,Wert3)
den Wert:
Code:
[color=green][b]'Hier bin ich'[/b][/color]
Gruß

Hansa 11. Dez 2004 00:27

Re: if-Abfrage bei NULL Werten
 
Zitat:

Zitat von Jasocul
Ja, aber kein Oracle. Igitt. :???:

ja, glaube ich. 8) Aber wer bezahlt es ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz