IF Statement im Select

LordExcalibur

Benutzer
Beiträge
6
Hallo,

ich habe eine Frage zu einen SQL Statement.
Ich habe eine Datenbank mit Verfügbarkeiten und zugehörigen Preisen.
In der Tabelle können jedoch die Preisfelder leer sein. Ist das der Fall, soll ein Standardwert genommen werden.


Tabelle Assets
AssetID | Name | Preis | ....


Tabelle Verfügbarkeit
AssetID| Verfügbar | Preis


Die Abfrage müsste nun so ähnlich aussehen:

SELECT
Asset.Name,
Verfügbarkeit.Verfügbar,
if Verfügbarkeit.Preis <> NULL then Verfügbarkeit.Preis else Assets.Preis
FROM
....


Das scheint so aber nicht zu funktionieren.
Hat jemand einen Tip wie ich das machen kann?

Viele Grüße
Sebastian
 
Werbung:
demo:

Code:
test=# create table lordexcalibur(id int primary key, val int);
CREATE TABLE
test=*# insert into lordexcalibur values (1, NULL);
INSERT 0 1
test=*# insert into lordexcalibur values (2,2);
INSERT 0 1
test=*# select id, coalesce(val, 999) from lordexcalibur ;
 id | coalesce
----+----------
  1 |  999
  2 |  2
(2 Zeilen)

Statt dem hardcodierten Wert kannst auch eine andere Spalte nehmen:

Code:
test=*# select id, coalesce(val, id) from lordexcalibur ;
 id | coalesce
----+----------
  1 |  1
  2 |  2
(2 Zeilen)
 
Werbung:
Zurück
Oben