You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

fetch与union联用SQL报SQL command not properly ended错误

触发SQL command not properly ended报错的核心原因
  • 你当前使用的写法违反了UNION合并查询的语法规则:UNION连接的是独立的结果集,单个查询分支如果要单独做排序、行限制(FETCH FIRST),必须将该分支包裹为独立的子查询(内联视图),否则数据库会将第一个分支末尾的fetch first 1 rows only识别为整个SQL语句的结束位置,后续紧跟的union关键字没有匹配的前置语法结构,就会抛出语句未正确结束的错误。
  • 额外需要注意:不套子查询的前提下,ORDER BY子句只能写在整个UNION语句的最末尾,作用是对两个分支合并后的全量结果排序,无法实现你预期的「两个分支分别按不同规则排序取数后再合并」的逻辑。
修正后可正常执行的SQL
SELECT * FROM (
    SELECT column1, length(column1)
    FROM test10
    ORDER BY length(column1), column1 ASC
    FETCH FIRST 1 ROWS ONLY
)
UNION
SELECT * FROM (
    SELECT column1, length(column1)
    FROM test10
    ORDER BY length(column1) DESC, column1 ASC
    FETCH FIRST 1 ROWS ONLY
);

修正逻辑说明:将两个需要独立排序取首行的查询分别包裹为独立子查询,让每个子查询内部的排序、行限制逻辑只作用于自身查询结果,外层再通过UNION合并两个子查询返回的结果,既符合语法要求,也能匹配你预期的取数逻辑。

内容的提问来源于stack exchange,提问作者deku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 05:45:07