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 个字符吗?
我是 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 个字符吗?