WITH FilteredParties AS ( SELECT Shipper, CASE WHEN Consignee = 'TO ORDER' OR Consignee = SUBSTR(业务分析III, 1, LENGTH(Consignee)) THEN NULL ELSE Consignee END AS Consignee, CASE WHEN "Notify Party" = 'SAME AS CONSIGNEE' THEN NULL ELSE "Notify Party" END AS "Notify Party" FROM CoralPerformanceData WHERE 业务分析III = 'JAPAN MAG/JM SHOJI' AND BSTYPE != 'MASTER' ${if(len(年度)==0,"","AND YEAR = '" + 年度 + "'")} ${if(len(季度)==0,"","AND 季度 = '" + 季度 + "'")} ${if(len(月度)==0,"","AND TO_CHAR(Month,'YYYY/MM') = '" + 月度 + "'")} ${if(len(运输方式)==0,"","AND TRANSPORTATION = '" + 运输方式 + "'")} ${if(len(POD)==0,"","AND \"POD/POL\" = '" + POD + "'")} ) 下面的查询我想要根据某一参数来执行不同sql,如果${进出口}为空执行 SELECT COUNT(DISTINCT party) AS total_unique_parties FROM ( SELECT Shipper AS party FROM FilteredParties WHERE Shipper IS NOT NULL UNION SELECT Consignee AS party FROM FilteredParties WHERE Consignee IS NOT NULL UNION SELECT "Notify Party" AS party FROM FilteredParties WHERE "Notify Party" IS NOT NULL ) subquery 如果${进出口}为E执行 SELECT COUNT(DISTINCT party) AS total_unique_parties FROM ( SELECT Shipper AS party FROM FilteredParties WHERE Shipper IS NOT NULL ) subquery 如果${进出口}为I执行 SELECT COUNT(DISTINCT party) AS total_unique_parties FROM ( SELECT Consignee AS party FROM FilteredParties WHERE Consignee IS NOT NULL UNION SELECT "Notify Party" AS party FROM FilteredParties WHERE "Notify Party" IS NOT NULL ) subquery |