Следующие столбцы таблицы не должны быть равны в моем предложении where.Как сравнить несколько столбцов в одной строке таблицы?
- cd_delivery_address
- cd_mail_delivery_address
- cd_st_code
- cd_mail_st_code
- cd_zip
- cd_mail_zip
Пожалуйста, найти свой фрагмент кода для достижения этой цели:
select * from table cd
where
(
(cd_mail_delivery_address <> cd_delivery_address or
(cd_mail_delivery_address is null and cd_delivery_address is not null) or
(cd_mail_delivery_address is not null and cd_delivery_address is null)
)
and (
cd.cd_city <> cd.cd_mail_city or
(cd.cd_city is null and cd_mail_city is not null) or
(cd_city is not null and cd_mail_city is null))
and (
cd.st_code <> cd.cd_mail_st_code or
(cd.st_code is null and cd_mail_st_code is not null) or
(st_code is not null and cd_mail_st_code is null)
)
and (
cd.cd_zip <> cd.cd_mail_zip or
(cd.cd_zip is null and cd_mail_zip is not null) or
(cd_zip is not null and cd_mail_zip is null)
)
)
Все столбцы - varchar2, и я получаю правильный вывод для этого кода. Но лучше ли сравнивать несколько столбцов в pl sql? могу ли я улучшить этот код? Любое предложение было бы полезно.
Почему вы хотите хранить хранимую процедуру? –