在PS查询中使用案例

时间:2019-05-16 08:04:05

标签: sql oracle peoplesoft

我想在查询中提供一个逻辑,当提示2(:2)被提供一个值或不为空时,STRM字段将自动等于FIRST_TERM_VALID字段,否则if :2为黑色,则STRM字段等于任意值。

这是代码的一部分:

AND A.STRM LIKE ( 
CASE 
WHEN  :2 <> ' ' 
THEN G.FIRST_TERM_VALID 
ELSE '%' 
END
)

问题出在我的查询的这一部分,我再也无法提取任何结果。

4 个答案:

答案 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)