DB2在fetch first中使用select count(*)

iszxjhcz  于 2023-10-18  发布在  DB2
关注(0)|答案(1)|浏览(125)

如何在Fetch First中使用Select Count(*)
或者将是限制结果长度的另一种方式。
表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
    )

我期待着第一行与项目1从表B。使用DB2 LUW。

js81xvg6

js81xvg61#

语法可能略有不同。
您可以先枚举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 |
fiddle

相关问题