Szanowni forumowicze,
Mam problem z klauzulą CASE w WHERE, otóż nie widzi mi zmiennej wejściowej.
-- (...)
begin
FOR
SELECT K.ID_KARTOTEKA, K.NAZWADL, K.INDEKS, K.DATAZALOZENIA, :DATA as DATASPR
FROM KARTOTEKA K
WHERE (
K.DATAZALOZENIA <
CASE DATASPR
WHEN NULL THEN '3011-11-11'
ELSE :DATA
END
)
INTO :ID_KARTOTEKA, :NAZWADL, :INDEKS, :DATAZALOZENIA, :DATAOUT
DO
BEGIN
suspend;
END
end
Wywala mi, że kolumna DATASPR nie istnieje. Utworzyłem ją sztucznie, ponieważ gdy w CASE używałem bezpośrednio :DATA też mi wywalało taki błąd.
Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
DATASPR.
At line 17, column 5.
Domyślam się, że idę w stronę przepaści, można więc to inaczej zrobić?
Co ciekawe, taka rzecz jest możliwa w MS SQL:
http://stackoverflow.com/questions/87821/sql-if-clause-within-where-clause
No, ale to mnie nie tyczy:-)
Dziękuję serdecznie,
A.