SELECT A20.*
FROM A20_ITEM A20
WHERE A20.DATE = '20181230'
AND EXISTS(
SELECT 1 FROM TABLE(FC_MAKE_IN(NVL(TRIM(WK_JANITF_CD), A20.ITEM_CD)))
WHERE A20.ITEM_CD = COLUMN_VALUE
FROM A20_ITEM A20
WHERE A20.DATE = '20181230'
AND EXISTS(
SELECT 1 FROM TABLE(FC_MAKE_IN(NVL(TRIM(WK_JANITF_CD), A20.ITEM_CD)))
WHERE A20.ITEM_CD = COLUMN_VALUE
)
前台传入WK_JANITF_CD为多个数值用FC_MAKE_IN转化成 [ IN ('XXX','XXX','XXX') ] 所需要的格式,
然后用COLUMN_VALUE条件筛选出所需要的数据。
point
1. 用EXISTS代替IN
2.把前台传来的数值转化成一个table
这样的话会减少hint数据 提高执行效率 减少执行所用时间
以后详细补充。