根据预定义的filter-clause(条件)更改左连接查询

时间:2015-12-30 07:34:28

标签: sql oracle

我有一个细粒度的SQL查询

SELECT A.Form_Id,
      B.CONTAINER_ID,
      A.FORM_DESC,
      A.FORM_TITLE,
      A.LAYOUT,
      A.TOTAL_COLUMNS,
      COUNT (*) Over () AS Total_Rows
      ,ROW_NUMBER () OVER ( ORDER BY CONTAINER_ID ASC ) ROWNM
    FROM FORM_DEFINITION A
    LEFT JOIN
      (SELECT CONTAINER_ID,FORM_ID FROM FORM_CONTAINER_DEFINITION
      ) B
    On A.Form_Id = B.Form_Id
WHERE UPPER(TRIM(A.FORM_ID)) LIKE '%' || UPPER(TRIM('FORM2')) || '%'

它在SQL Developer中运行良好,但我们正在使用自己的框架。它为每个查询添加动态filter-clause(where condition),如

AND UPPER(TRIM(A.FORM_ID)) LIKE '%' || UPPER(TRIM('FORM2')) || '%'

但是我把它改成了  WHERE UPPER(TRIM(A.FORM_ID)) LIKE '%' || UPPER(TRIM('FORM2')) || '%' 我不应该更改过滤条款。您能否建议我如何修改左连接查询以使用预定义的filter-clause。

0 个答案:

没有答案