IBM DB2中的数据类型转换:BIGINT到VARCHAR

jrh*_*ath 6 sql db2 udb

我正在写一个查询来做一些事情.但它不按我想要的方式工作:

select CORR_ID from TABLE1
where CORR_ID not in (select id from TABLE2)
Run Code Online (Sandbox Code Playgroud)

问题是,TABLE2.id是一个long,而TABLE1.CORR_ID是一个字符串.

那么我怎样才能让它发挥作用呢?

PS:我正在使用IBM UDB.

jrh*_*ath 15

好的,我找到了一个方法:

select CORR_ID from TABLE1 where CORR_ID not in 
(select CAST( CAST(id AS CHAR(50)) AS VARCHAR(50) ) from TABLE2)
Run Code Online (Sandbox Code Playgroud)

这非常有趣:你不能将BIGINT转换为VARCHAR,但是:

  • 你可以把BIGINT投射到CHAR
  • 你可以施放CHAR TO VARCHAR

这是荒唐的!