Вывод запроса для NVL - PullRequest
       5

Вывод запроса для NVL

0 голосов
/ 23 октября 2019

Запрос -

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

Вывод -

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

Col 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 голосов
/ 23 октября 2019

Ну, вы неправильно используете функцию 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...