我有两个这样的列。 (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中做到这一点?
答案 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);