DB2 首先在 fetch 中使用 select count(*)

问题描述 投票:0回答:1

如何在

Select Count(*)
 中使用 
Fetch First
或者将是限制结果长度的另一种方法。

表A

PK
1

表B

PK
1
2
WITH ALL_DATA AS
    (SELECT *
     FROM TABLE_A
    )
    SELECT *
    FROM TABLE B
    FETCH FIRST (SELECT COUNT(*) FROM WITH ALL_DATA) ROWS ONLY
    )

我期待第一行包含表 B 中的第 1 项。 我正在使用 DB2 LUW。

db2 db2-luw
1个回答
0
投票

语法可能略有不同。
您可以先枚举

B
行,然后在
WHERE
子句中使用它们的编号。

WITH ALL_DATA AS
    (SELECT *
     FROM (VALUES 1, 2) A (I)
    )
SELECT I
FROM 
(
    SELECT B.*, ROW_NUMBER () OVER () AS RN_
    FROM (VALUES 1, 2, 3) B (I)
)
WHERE RN_ <= (SELECT COUNT(*) FROM ALL_DATA)
1
2

小提琴

© www.soinside.com 2019 - 2024. All rights reserved.