为什么FETCH FIRST N ROWS不能与with语句结合使用?



我有以下SQL语句,它不能在我的DB2数据库上运行:

WITH a AS (
    SELECT * FROM sysibm.systables
)
SELECT a.* FROM a
FETCH FIRST 10 ROWS
没有FETCH语句,它可以工作。我得到的错误信息是:

非法使用关键字OPTIMIZE,令牌ERR_STMTWng_stmt获取SQL保存点保持自由

有什么建议吗?

您缺少FETCH子句末尾的ONLY关键字。

WITH a AS (
    SELECT * FROM sysibm.systables
)
SELECT a.* FROM a
FETCH FIRST 10 ROWS ONLY;

最后缺少唯一的关键字。例子。

虽然您给出的示例可能简化了,但如何将fetch first子句放在第一个选择部分中?

我永远无法清楚地阅读文档,但是由于with语句创建了一个公共表表达式,因此您可能无法在从中选择时使用fetch-first子句。根据本文档,在with语句的select语句中使用fetch-first子句是有效的语法。

WITH a AS (
SELECT * FROM sysibm.systables
FETCH FIRST 10 ROWS ONLY
)
SELECT a.* FROM a;

相关内容

  • 没有找到相关文章

最新更新