2011-01-31 59 views
-3

我有兩列這樣。 (TC_NO是11字符,VER_NO爲10個字符)從Oracle中的不同列中查找類似的數據

TC_NO  VER_NO 
19262512794 1926251279  
31124177286 1111111111 
31067179194 2222222222 
65617278204 6561727820 
31483188084 0000000000 

我要的是,發現VER_NO的第10個字符是相同的TC_NO的前10個字符..

例如,對於此表中的結果應該是:

TC_NO  VER_NO 
19262512794 1926251279 
65617278204 6561727820 

我該怎麼在Oracle中做到這一點?

回答

4
select * 
from MYTABLE 
where substr(TC_NO,1,10) = VER_NO 
2

假設你沒有空位。

select * 
from MYTABLE 
where substr(TC_NO,1,10)=substr(VER_NO, 1, 10); 

如果你有空值,你希望他們是平等的。

select * 
from MYTABLE 
where substr(NVL(TC_NO, '-'),1,10)=substr(NVL(VER_NO, '-'), 1, 10); 

如果你有空位,你不希望他們是平等的。

select * 
from MYTABLE 
where substr(NVL(TC_NO, '-'),1,10)=substr(NVL(VER_NO, '|'), 1, 10); 
+1

好,全面的答案。第一個查詢將適用於「[有]空值,並且不希望它們相同」場景('null = null`爲false,'substr`在'null`上使用時將返回null]) 。 – Allan 2011-01-31 14:50:02

相關問題