我有以下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;