0
我是DB2新手,无法找到与EXCEPT
查询相关的任何内容[除非是非常简单的示例]。我试图比较两个表中的值,以便返回出现在TABLE_A
而不是TABLE_B
中的值。问题是被比较的列并不完全一样,但首先需要一些操作。从TABLE_A
EXCEPT DB2中的SELECT SQL查询
ID_1
场看起来是这样的:从TABLE_B
000 999
ID_2
场看起来是这样的: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
这个语法是不行的,它似乎返回所有值TABLE_A
,即使被按摩键值也出现在TABLE_B
。
谢谢,我试过这些替代方法,返回的结果仍然是'TABLE_A'中的所有值。当我分别运行每个'SELECT'查询时,返回的值都是相同的格式并且应该匹配。 – joshi123
真的很奇怪。如果你这样做:SELECT * FROM MYDB.TABLE_A f1异常加入MYDB.TABLE_B f2 on cast(trim(REPLACE(f1.ID_1,'',''))as varchar(15))= cast(trim(SUBSTRING (f2.ID_2,5,10))as varchar(15)) – Esperento57
看起来这是一个数据问题,但修剪技术是有用的,因为有隐藏的空间,谢谢 – joshi123