我想返回与UNION相关的两个表中具有列的行数。 我写了这个查询
SELECT(
(SELECT * FROM(
(SELECT
ID_COMPTE,
TITLE,
LINK,
DATE_CREAT,
DATE_MODIF,
'TF1' AS "TYPE_FICHIER",
case when DATE_MODIF is null then DATE_CREAT else DATE_MODIF end as LAST_UPDATE FROM FIRST_TABLE FFF where ID_COMPTE= 11111111)
UNION
(SELECT
ID_COMPTE,
TITLE,
LINK,
DATE_CREAT,
DATE_MODIF,
'TF2' AS "TYPE_FICHIER",
case when DATE_MODIF is null then DATE_CREAT else DATE_MODIF end as LAST_UPDATE FROM SECOND_TABLE SSS where ID_COMPTE= 11111111)
order by LAST_UPDATE desc
) parentSelect WHERE ROWNUM BETWEEN 0 AND 2)), count(firstSelect) FROM firstSelect;
目的是返回最后两行以及表1和表2所有行的计数。 没有计数的查询工作正常,只是导致问题的计数,我不知道如何插入。 我还尝试对父SELECT中的每个SELECT和SUM使用count(),但是它不起作用。
答案 0 :(得分:1)
这个概念应该对您有用。基本上,您可以在with子句中选择所需的数据。然后在主选择中,选择数据和计数。
WITH
base AS
(
SELECT 'TEST1' DATA FROM DUAL
UNION ALL
SELECT 'TEST2' DATA FROM DUAL
UNION ALL
SELECT 'TEST3' DATA FROM DUAL
)
SELECT (SELECT COUNT(*) FROM base) AS KOUNT, base.*
FROM base
;
答案 1 :(得分:0)
您可以使用#Temp(TempTable)。 在其中插入或修改要包含的行,最后从存储过程中将其返回。