Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 为什么FETCH前N行不能与with语句结合使用?_Sql_Db2_Fetch_Db2 Zos - Fatal编程技术网

Sql 为什么FETCH前N行不能与with语句结合使用?

Sql 为什么FETCH前N行不能与with语句结合使用?,sql,db2,fetch,db2-zos,Sql,Db2,Fetch,Db2 Zos,我有以下SQL语句,它不在我的DB2数据库上运行: WITH a AS ( SELECT * FROM sysibm.systables ) SELECT a.* FROM a FETCH FIRST 10 ROWS 如果没有FETCH语句,它就可以工作。我收到的错误消息是: 非法使用关键字优化、令牌错误 WNG_STMT获取SQL存储点保留自由 这是我的预期 有什么建议吗 FETCH子句末尾缺少关键字 WITH a AS ( SELECT * FROM sysibm.syst

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

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

非法使用关键字优化、令牌错误 WNG_STMT获取SQL存储点保留自由 这是我的预期


有什么建议吗

FETCH子句末尾缺少
关键字

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

结尾缺少唯一的关键字。示例。

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

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

i、 e


谢谢你的回答。我只是忘了只复制
关键字。如果我添加它,查询仍然不起作用!相同的错误消息。我只是忘了在这里复制
。我在原始语句中使用了它,但查询不起作用。我感觉它与
WITH
子句有关。
WITH a AS (
SELECT * FROM sysibm.systables
FETCH FIRST 10 ROWS ONLY
)
SELECT a.* FROM a;