Я хочу получить значение NULL, если оба выражения не совпадают, например, NULLIF (EXP1, EXP2) вернет значение NULL, если то же самое, и вернет первое значение EX, если оно не одинаковое.
Я пытался с помощью подзапроса или создания функций, но мне нужен простой, легкий, стандартный выход.
select * from table
where service_type = 'X3'
or (1 <> (select nvl(min(1),2) from table where service_type = 'X3')
and service_type is null)
Этот запрос возвращает результат моего желания, но мне не нужно использовать подзапрос.
таблица содержит данные типа
service_type
------------
X4
X3
null
Я хочу получить, если значение service_type match X3 возвращает X3, но если оно не совпадает с X5, тогда возвращается ноль для совпадения с нулевой записью.
Когда service_type = 'X3'
service_type
------------
X3
Когда service_type = 'X5' или любой другой, например, 'X%', вернет ноль
service_type
------------
null