0

我想返回由 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() 但它不起作用。

4

2 回答 2

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
;
于 2018-06-26T13:23:33.337 回答
0

您可以使用 #Temp ( TempTable )。在其中插入或操作您想要拥有的行,最后从存储过程中返回它。

于 2018-06-26T13:26:09.873 回答