使用输入参数过滤列
Filtering column using input parameter
我需要根据外部参数的值过滤列,但我不知道如何处理 NULL 情况,因为它需要不同的语法。
我有的是这样的:
WHERE c.fruit LIKE
(CASE :fruitParam
WHEN 'Orange' THEN 'OR'
WHEN 'Apple' THEN 'APL'
WHEN 'Any' THEN '%'
WHEN 'None' THEN NULL -- doesn't work since we can't do: LIKE NULL
END)
在此实例中,c.fruit is null
处需要返回行。有没有另一种写法,当参数 'fruitParam' 为 'None' 时,我们可以设置条件:c.fruit IS NULL
?
这是在使用 Oracle。
你可以把它移到另一个子句中:
WHERE (c.fruit LIKE
CASE :fruitParam
WHEN 'Orange' THEN 'OR'
WHEN 'Apple' THEN 'APL'
WHEN 'Any' THEN '%'
END)
or (:fruitParam = 'None' and c.fruit is null)
我需要根据外部参数的值过滤列,但我不知道如何处理 NULL 情况,因为它需要不同的语法。 我有的是这样的:
WHERE c.fruit LIKE
(CASE :fruitParam
WHEN 'Orange' THEN 'OR'
WHEN 'Apple' THEN 'APL'
WHEN 'Any' THEN '%'
WHEN 'None' THEN NULL -- doesn't work since we can't do: LIKE NULL
END)
在此实例中,c.fruit is null
处需要返回行。有没有另一种写法,当参数 'fruitParam' 为 'None' 时,我们可以设置条件:c.fruit IS NULL
?
这是在使用 Oracle。
你可以把它移到另一个子句中:
WHERE (c.fruit LIKE
CASE :fruitParam
WHEN 'Orange' THEN 'OR'
WHEN 'Apple' THEN 'APL'
WHEN 'Any' THEN '%'
END)
or (:fruitParam = 'None' and c.fruit is null)