2009-06-24 10 views
6

Bazı şeyler yapmak için bir sorgu yazıyorum. Ama onun ben onu istediğiniz şekilde çalışmıyor: TABLE1.CORR_ID bir dize ise sorundurIBM DB2'de Datatype dönüşümü: BIGINT to VARCHAR

select CORR_ID from TABLE1 
where CORR_ID not in (select id from TABLE2) 

, TABLE2.id, bir uzun.

Peki nasıl çalıştırabilirim?

Not: IBM UDB kullanıyorum.

+0

Başlık cümleleme çok önemlidir. "Sorgum bozuk" çoğu insanın görmezden geleceği bir tür başlıktır. Ancak, başlığınız belirli bir sorununuz olduğunu gösteriyorsa, kullanıcıların daha yakından bakması daha olasıdır. – Welbog

+0

ty. – jrharshath

cevap

14

Okay TABLE1 gelen corr_id

seçme CORR_ID veri türünü eşleştirmek için seçilen id sütunu döküm gerekir Ben bir yöntem bulundu:

select CORR_ID from TABLE1 where CORR_ID not in 
(select CAST(CAST(id AS CHAR(50)) AS VARCHAR(50)) from TABLE2) 

Bu oldukça ilginç şudur: VARCHAR için bir bIGINT döküm, ama olamaz:

  • Bir BIGINT
  • CHAR yayınlayabileceğim ve VARCHAR

İÇİN Bir CHAR bu saçma olduğunu döküm yapabilirsiniz!

1

CORR_ID değil de (Tablo2 döküm (varchar id) seçin) nerede

+0

ans – jrharshath

+0

cevabımdan çok daha iyi. 2 tane daha fazla puan alsaydım oy verirdim – GregA100k

2

DB2, bir VARCHAR ve CHAR sütununun ek döküm olmadan karşılaştırılmasına olanak sağlar, bu nedenle gerçekten yapmanız gereken tek şey numarayı çevirmektir. Sorunuzun insanları çekmek istiyorsanız DEĞİL İÇİNDE (CHAR tablo2 DAN (id) SEÇ) corr_id FROM tablo1

SEÇ corr_id