如何根据if语句添加条件

How to add condition based on if statement

我正在编写此存储过程,我想在其中添加基于 IF 语句的第三个 AND 条件,但我在 IF 语句中遇到错误。这是在 Oracle 中执行此操作的正确语法吗?谢谢

FROM U_DEBT D,
U_DOCUMENT_DEBT UDD,

where D.DEBT_TYPE='I' AND UDD.DEBT_NUM=D.DEBT_NUM
AND UDD.FS_STATEMENT_NUM=UUI.FS_STATEMENT_NUM

if P5_LAST_NAME is not null then
AND  D.FORMATTED_LAST_NAME IN (SELECT local.pkg_bs_common.web_format(P5_LAST_NAME) FROM DUAL);
end if;

你可以这样做:

WHERE D.DEBT_TYPE='I' AND 
      UDD.DEBT_NUM=D.DEBT_NUM AND 
      UDD.FS_STATEMENT_NUM=UUI.FS_STATEMENT_NUM AND 
      (P5_LAST_NAME IS NULL OR 
       D.FORMATTED_LAST_NAME IN (SELECT local.pkg_bs_common.web_format(P5_LAST_NAME) 
                                 FROM DUAL)