sql - DB2 SELECT EXCEPT 与 WHERE 子句

标签 sql select except db2-zos

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

我通过使用 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

最佳答案

尝试引入括号,例如

( 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 )

关于sql - DB2 SELECT EXCEPT 与 WHERE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40680708/

相关文章:

mysql - 我怎样才能做出这个选择语句

sql-server - 如何在 SQL 中查找不配对的行?

vb.net - 运算符(operator)除外

jQuery - 轻松授予选择框自动完成功能的任何好方法

sql - 从现有表插入?

sql - 哪种数据类型最适合通过事务复制发布的表的聚集索引?

mysql - 一个复杂的 MySQL 查询

mysql - 是否可以在没有表的情况下在 select 语句上创建多行?

MySQL : retrieve a large select by chunks

sql - 为什么交叉应用会使查询变慢?