获得正确的ROWCOUNT

时间:2016-02-03 09:25:33

标签: sql oracle oracle11g

我已经完成了2个查询的联合。当我个人采取2个查询的行计数时,它分别显示了1504行和15行。但是当我占用总行数时,我仍然得到1504行。我错过了一些东西在这?

查询是:

SELECT DISTINCT T1.sys_tenant_id
FROM SO_CTRL T1, S_BU T2
WHERE T1.SYS_TENANT_ID = T2.ROW_ID AND T2.CUST_STATUS_CD = 'Active' AND
    T1.OBJ_NAME = 'Opportunity' AND T1.CTRL_NAME != 'Primary Revenue Close Date'
UNION
SELECT DISTINCT T1.sys_tenant_id
FROM SO_CTRL T1, S_BU T2
WHERE T1.SYS_TENANT_ID = T2.ROW_ID AND T2.CUST_STATUS_CD = 'Active' AND
    T1.OBJ_NAME = 'Opportunity' AND T1.CTRL_NAME = 'Primary Revenue Close Date' AND
    (T1.default_value_expr IS NULL OR LTRIM(RTRIM(T1.default_value_expr)) = ''))

1 个答案:

答案 0 :(得分:2)

您所看到的一个可能的解释是,第二个查询中的15行已经作为第一个查询的1504行中的重复项存在。

UNION运算符会过滤掉重复项,因此如果您希望最终的行数为1519,则可以尝试使用UNION ALL