我正在写一个查询做一些东西。 但它不工作,我希望它的方式:
select CORR_ID from TABLE1
where CORR_ID not in (select id from TABLE2)
问题是,TABLE2.id是一个长期的,而TABLE1.CORR_ID是一个字符串。
所以,我怎样才能使它发挥作用?
PS:我使用的是IBM UDB。
我正在写一个查询做一些东西。 但它不工作,我希望它的方式:
select CORR_ID from TABLE1
where CORR_ID not in (select id from TABLE2)
问题是,TABLE2.id是一个长期的,而TABLE1.CORR_ID是一个字符串。
所以,我怎样才能使它发挥作用?
PS:我使用的是IBM UDB。
好吧,我发现了一个方法:
select CORR_ID from TABLE1 where CORR_ID not in
(select CAST( CAST(id AS CHAR(50)) AS VARCHAR(50) ) from TABLE2)
这是很有趣的:你不能施放一个BIGINT到VARCHAR,但是:
这是荒唐的!
DB2允许不需要额外铸造出要比较的VARCHAR和CHAR列,所以你真正需要做的是投的数量。
SELECT corr_id FROM表1 WHERE corr_id NOT IN(SELECT CHAR(ID)FROM表2)
你应该能够投选定的id列匹配corr_id的数据类型
从TABLE1选择CORR_ID其中CORR_ID不在(选择TABLE2投(ID为varchar))