DB2查询报错:EXCEPT关键字不符合预期问题排查
DB2中EXCEPT查询触发SQL0199错误的原因及修复
你的查询触发SQL Error [42601]: [SQL0199]错误的核心原因是:EXCEPT集合操作的每个子查询不能单独使用ORDER BY。
DB2的集合运算(EXCEPT/UNION/INTERSECT)要求参与运算的每个子查询返回无特定顺序的数据集,而单独给子查询加ORDER BY会将其转为有序结果集,不符合集合运算的语法规则,因此数据库会提示"Keyword EXCEPT not expected"。
修正后的查询语句
SELECT fooTbl1.fooCol as fooCol FROM fooTbl1 EXCEPT SELECT fooTbl2.fooCol as fooCol FROM fooTbl2 ORDER BY fooCol;
补充说明
如果需要对最终的差集结果排序,只需在整个语句的末尾添加一次ORDER BY即可,无需为每个子查询单独指定排序规则。
内容的提问来源于stack exchange,提问作者Jon Thoms
相关产品推荐
相关产品推荐

