除了DB2中的SELECT SQL Query之外

时间:2016-11-07 23:35:15

标签: sql select db2 except

我是DB2的新手,找不到与EXCEPT查询相关的任何内容[除了]非常简单的示例。我正在尝试比较两个表中的值,以便返回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

此语法不起作用,它似乎返回TABLE_A中的所有值,即使按摩键值也出现在TABLE_B中。

1 个答案:

答案 0 :(得分:1)

你尝试修剪可能

吗?
 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中的空间特征?