【问题标题】:DB2 SELECT EXCEPT with WHERE clause带有 WHERE 子句的 DB2 SELECT EXCEPT
【发布时间】:2016-11-18 15:27:08
【问题描述】:

我正在尝试比较 z/OS 中 DB2 数据库中的两个表,使用 SPUFI 提交 SQL 查询。

我通过使用EXCEPT 来查看两个SELECT 查询之间的区别。

我需要使用WHERE 子句从第一个查询中过滤SELECT 语句。

SELECT KEY_FIELD_1,LOOKUP_FIELD_1  
FROM TABLE_1  
WHERE FILTER_FIELD = '1'  
EXCEPT  
SELECT KEY FIELD_2,LOOKUP_FIELD_2  
FROM TABLE_2

我得到了结果,但它也返回了错误-199 这是因为第二个SELECT 语句中没有WHERE 子句吗?

ERROR: ILLEGAL USE OF KEYWORD EXCEPT.  
TOKEN <ERR_STMT> <WNG_STMT> GET SQL  
SAVEPOINT HOLD FREE ASSOCIATE WAS EXPECTED

【问题讨论】:

  • no..这不是因为第二个查询中缺少 where。如果您显示 where 条件会有所帮助。
  • 抱歉,这不是很清楚 - 提供了确切的 WHERE 声明并添加了错误消息

标签: sql select except db2-zos


【解决方案1】:

尝试引入括号,例如

( SELECT KEY_FIELD_1,LOOKUP_FIELD_1  
FROM TABLE_1  
WHERE FILTER_FIELD = '1' )  
EXCEPT  
( SELECT KEY FIELD_2,LOOKUP_FIELD_2  
FROM TABLE_2 )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 2021-03-14
    • 2018-03-08
    • 2019-07-15
    • 1970-01-01
    • 2016-03-25
    • 2022-08-15
    相关资源
    最近更新 更多