如何更正我的 sql 查询,以免收到错误 "keyword UNION not expected"?
How do I correct my sql query(s) so i don't get the error "keyword UNION not expected"?
我在 python 烧瓶 API 中有一个(可能是两个)麻烦的原始 sql 查询。我认为第一个 sql 查询导致了这个错误,但我绝不是 sql 的高手。数据库是DB2。完整的错误如下:“[SQL0199] 关键字 UNION not expected. Valid tokens: 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 那样高手,所以任何建议或指向我可以检查的东西的指针都将不胜感激,谢谢!
终于想通了。在第一个查询中,我删除了第一个 limit {Limit} offset {offset_count}
并在 union all 之后留下了第二个。我想因为我使用的是联合,所以它可能将其视为重复项并抛出该错误。不完全确定
我在 python 烧瓶 API 中有一个(可能是两个)麻烦的原始 sql 查询。我认为第一个 sql 查询导致了这个错误,但我绝不是 sql 的高手。数据库是DB2。完整的错误如下:“[SQL0199] 关键字 UNION not expected. Valid tokens: 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 那样高手,所以任何建议或指向我可以检查的东西的指针都将不胜感激,谢谢!
终于想通了。在第一个查询中,我删除了第一个 limit {Limit} offset {offset_count}
并在 union all 之后留下了第二个。我想因为我使用的是联合,所以它可能将其视为重复项并抛出该错误。不完全确定