私はいくつかのことをするためにクエリを書いています。しかし、それは私が望むように機能していません:
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 table1 WHERE corr_id NOT IN (SELECT CHAR( id ) FROM table2 )
選択した id 列をキャストして、corr_id のデータ型に一致させることができるはずです
CORR_IDが含まれていないTABLE1からCORR_IDを選択します(TABLE2からcast(id as varchar)を選択します)