我想在查询中提供一个逻辑,当提示2(:2)被提供一个值或不为空时,STRM字段将自动等于FIRST_TERM_VALID
字段,否则if :2
为黑色,则STRM
字段等于任意值。
这是代码的一部分:
AND A.STRM LIKE (
CASE
WHEN :2 <> ' '
THEN G.FIRST_TERM_VALID
ELSE '%'
END
)
问题出在我的查询的这一部分,我再也无法提取任何结果。
答案 0 :(得分:2)
您的逻辑可以简单得多:
:2
为空或检查A.STRM = G.FIRST_TERM_VALID
AND (:2 IS NULL OR A.STRM = G.FIRST_TERM_VALID)
答案 1 :(得分:0)
如果提示:2为空白,则很可能为null。 这可能是您要搜索的内容:
and (:2 is null or a.strm = g.first_term_valid)
答案 2 :(得分:0)
在PS Query上创建一个表达式并将其用作条件
AND A.STRM = CASE WHEN :2 IS NULL THEN A.STRM ELSE G.FIRST_TERM_VALID END
答案 3 :(得分:-1)
如果以上答案无效,请尝试使用
AND
(:2 = ' '
OR A.STRM = G.FIRST_TERM_VALID)