EXCEPT SELECT SQL DB2 中的查询

EXCEPT SELECT SQL Query in DB2

我是 DB2 的新手,找不到与 EXCEPT 查询相关的任何内容 [除了] 非常简单的示例。我正在尝试比较两个表中的值,以便 return 出现在 TABLE_A 中但不出现在 TABLE_B 中的值。问题是被比较的列不完全键控,但首先需要一些操作。

ID_1 来自 TABLE_A 的字段如下所示:000 999

ID_2 来自 TABLE_B 的字段如下所示:111-000999

因此,通过对来自每个 ID 的数据进行处理,我们获得了该示例行的键值 000999。这应该导致该行被排除在查询结果之外,因为数据存在于两个表中。

SELECT REPLACE (ID_1, ' ','') AS ID_1_TRIM
FROM MYDB.TABLE_A
EXCEPT 
SELECT SUBSTRING(ID_2,5,10) 
FROM MYDB.TABLE_B

此语法无效,它似乎 return TABLE_A 中的所有值,即使被按摩的键值也出现在 TABLE_B 中。

有没有试过trim可能

 SELECT trim(REPLACE (ID_1, ' ','')) AS ID_1_TRIM
 FROM MYDB.TABLE_A
 EXCEPT 
 SELECT trim(SUBSTRING(ID_2,5,10)) FROM MYDB.TABLE_B

或投

 SELECT cast(trim(REPLACE (ID_1, ' ','')) as varchar(15)) AS ID_1_TRIM
 FROM MYDB.TABLE_A
 EXCEPT 
 SELECT cast(trim(SUBSTRING(ID_2,5,10)) as varchar(15))  FROM MYDB.TABLE_B

在我的系列中,您的查询有效,您确定它是 ID_1 中的 space 个字符吗?