С одной стороны, может показаться, что SQL предложения IN и EXISTS взаимозаменяемы.
Однако они совершенно различаются в том, как они обрабатывают NULL-значения, и могут
давать различные результаты. Возникающие проблемы связаны с тем, что в базе данных
Oracle, NULL-значение имеет смысл "неизвестно", поэтому любое сравнение
или операция с NULL-значением является также NULL, и любые проверки, которые возвращают
NULL, всегда игнорируются.
Начну с того, что я полагаю, что неявное преобразование - это плохо. Еще хуже. Зло.
Нет-нет, серьезно! Теперь позвольте мне дать определения преобразований обоих типов
и объяснять, почему я так считаю.
Unix пришел в Oracle в форме регулярных выражений, чтобы увеличить мощь поиска.
Я подумал, что неплохо бы посвятить статью регулярным выражениям, тому как мы, включая
меня, знакомимся или освежаем в памяти мощь, которую могут дать эти выражения.