WHERE fid IN NVL('@materialgroup',fid)NVL(x,value) :如果x为空,返回value,否则返回x。 NVL2(x,value1,value2) :如果x非空,返回value1,否则返回value2。所以你这个IN NVL( ‘aaaaaa’,'bbbbbbbb' ,fid)肯定是不行的啊,判断的是第一个参数是否为空
where ( materialgroup' is null or fid in (materialgroup'))
又一个老帖子被翻出来了 where ( materialgroup is null or instr(materialgroup,fid)>0)
放到前端来判断,不会麻烦多少,简便应给效率让路
于是SQL变成了IN NVL( ‘aaaaaa’,'bbbbbbbb' ,fid)就报错了
于是SQL变成了IN NVL( ‘aaaaaa’,'bbbbbbbb' ,fid)就报错了
于是SQL变成了IN NVL( ‘aaaaaa’,'bbbbbbbb' ,fid)就报错了
你这个参数包含有特殊字符,还是用动态SQL吧
NVL2(x,value1,value2) :如果x非空,返回value1,否则返回value2。所以你这个IN NVL( ‘aaaaaa’,'bbbbbbbb' ,fid)肯定是不行的啊,判断的是第一个参数是否为空
where ( materialgroup is null or instr(materialgroup,fid)>0)