NVL的查询输出

时间:2019-10-23 12:34:50

标签: sql oracle

查询-

select A,B 
from ABC 
where B like '%AMBAUS61%'
;

输出-

col A   col B
BIC     AMBAUS61
BIC     AMBAUS61AABC
BIC     AMBAUS61XXXX
BIC     AMBAUS61XXYZ

颜色B包含值8或12,所以我想输出类似-

的查询

查询-

select A,B 
from ABC 
where B like '%AMBAUS61%'
and A = 'BIC'
and B like NVL('%ABC%','%AMBAUS61%');

输出-

col A   Col B 
BIC     AMBAUS61AABC

工作正常,我正在插入正确的值,但是在某些情况下,我只想检查8位数字即可。

像-

select A,B 
from ABC 
where B like '%AMBAUS61%'
and A = 'BIC'
and B like NVL('%ABCD%','%AMBAUS61%');
Col A  col B
null   null

这里查询输出为空白,我想要如下所示的输出-

col A   col B
BIC     AMBAUS61

我正在使用Java连接来称呼它。请任何人建议我,如何获得以下输出。

1 个答案:

答案 0 :(得分:0)

好吧,您错误地使用了NVL函数。这个:

NVL('%ABCD%','%AMBAUS61%')

说:“如果'%ABCD%'NULL,则取'%AMBAUS61%'”,这从不成立。也许您打算使用

and (   B like '%ABCD%'
     or B like '%AMBAUS61%'
    )
and B is not null --> optionally; I don't know whether you want it or not