ich möchte eine Abfrage machen, bei der ich einen Wert abfrage, dem ich über diesen Wert dann einen anderen Wert zuweisen muss.
DH. Ich möchte abfragen ob der Wert 1 ist, wenn ja weise der neuen Spalte 104 zu.
Folgende Abfrage habe ich erstellt:
select a.tkl_text_100,
case WHEN (select b.art_nr from gebiete25_sachdaten where b.art_nr=1) THEN (Select a.tkl_text_100 from sachdaten_zuordnung where a.tkl_number_10=104)
END
from sachdaten_zuordnung a,gebiete25_sachdaten b;
Nun bekomm ich folgende Fehlermeldung:
FEHLER: Argument von CASE/WHEN muss Typ boolean haben, nicht Typ integer.
Das, was aus dem Ausdruck nach dem WHEN rausfällt, muß BOOL sein. Bei Dir kommt eine Artikelnummer, die sehr wahrscheinlich nicht Ja/Nein ist.
test=*# select i, case when (select 1) = 1 then 'ja' else 'nein' end as bla from foo;
i | bla
---+-----
1 | ja
2 | ja
3 | ja
4 | ja
(4 rows)
Time: 15,912 ms
test=*# select i, case when (select 2) = 1 then 'ja' else 'nein' end as bla from foo;
i | bla
---+------
1 | nein
2 | nein
3 | nein
4 | nein
(4 rows)