在Oracle中查找来自不同列的类似数据

时间:2011-01-31 13:55:20

标签: sql database oracle

我有两个这样的列。 (TC_NO是11个字符,VER_NO是10个字符)

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中做到这一点?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分: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);