скажите, пожалуйста, это реально - используйте конструкцию CASE, где выражение с IS NULL / IS NOT NULL будет возвращено в TNEN? У меня есть процедура в пакете, которая получает входной параметр, и он передается селектору в курсоре, который я хочу установить один из предикатов:
select t1...
t2...
from test t1,
test t2
where t1.flg = 'N'
AND t2.field = 'supertest'
AND CASE
WHEN input_parm = 'Y' THEN t1.id IS NOT NULL
WHEN input_parm = 'N' THEN t1.id IS NULL
WHEN input_parm IS NULL THEN
ELSE t1.id = input_parm
END
input_parm - это параметр, входящий в процедуру
- если input_parm = Y, тогда поле t1.id не равно нулю
- если input_parm = N, тогда поле t1.id равно нулю
- , если input_parm равно null, тогда это условие не должно приниматься, эти селекторы должны быть как из IS NULL, так и из NOT NULL
- , если input_parm IS NOT NULL и! = 'Y' и! = 'N' тогда t1. id = input_parm
В этом примере компилятор ругается на IS NULL после THEN. Можете ли вы помочь мне, плз?