如何更正我的 sql 查询,以免收到错误“关键字 UNION not expected”?

Posted

技术标签:

【中文标题】如何更正我的 sql 查询,以免收到错误“关键字 UNION not expected”?【英文标题】:How do I correct my sql query(s) so i don't get the error "keyword UNION not expected"? 【发布时间】:2021-04-26 23:46:17 【问题描述】:

我在 python 烧瓶 API 中有一个(可能两个)麻烦的原始 sql 查询。我认为第一个 sql 查询导致了这个错误,但我绝不是 sql 的高手。数据库是 DB2。完整错误如下:“[SQL0199] 关键字 UNION 不是预期的。有效标记:FOR USE SKIP WAIT WITH OPTIMIZE。”。这是我的第一个和第二个 sql 查询

第一次查询

SELECT
    PRDATA as the_date,
    PREDR as csr,
    PRQTY as quantity,
    PRORD# as order_data, 
    PREXT as ext 
FROM DATA.DATATABLE 
WHERE CUST = customer_number 
limit Limit offset offset_count
union all
SELECT
    PRDATA as the_date,
    PREDR as csr,
    PRQTY as quantity,
    PRORD# as order_data, 
    PREXT as ext 
FROM DATA.DATATABLE 
WHERE CUST = customer_number 
limit Limit offset offset_count

第二次查询

SELECT COUNT(*)
from DATA.DATATABLE
WHERE PRCUST# = customer_number
UNION ALL
SELECT COUNT(*)
from DATA.DATATABLE
WHERE PRCUST# = customer_number

就像我说的,我不是 SQL 大师,所以任何建议或指向我可以检查的内容的指针将不胜感激,谢谢!

【问题讨论】:

你使用的是什么 SQL 数据库? @ZackVT 基于标签看起来像 DB2。 这是一个 IBM Db2。现在将其添加到问题详细信息中 【参考方案1】:

终于明白了。在第一个查询中,我删除了第一个limit Limit offset offset_count,并在全部联合之后留下了第二个。我想因为我使用了一个联合,所以它可能会认为它是重复的并抛出那个错误。不完全确定

【讨论】:

以上是关于如何更正我的 sql 查询,以免收到错误“关键字 UNION not expected”?的主要内容,如果未能解决你的问题,请参考以下文章

SQL 更新语句的语法错误

如何更正此 SQL 查询?

如何更正 LIKE 数据的 PHP 查询?

如何更正将 nvarchar 转换为 sql 数据类型 numeric(9, 4) 的数字的算术溢出错误? [关闭]

需要更正 SQL 查询

如何获取SQL查询当前数据上一条和下一条的记录?