Всем отличного начала нового года! Вчера утром в своём Телеграм-канале опубликовал интересную задачу по SQL с собеседования про IN и NOT IN. С первого взгляда кажущееся правильным решение на самом деле ложно. Чтобы верно ответить в задаче, нужно знать как СУБД обрабатывает элементы множества, указанные для оператора IN / NOT IN в запросе. Вначале вот текст самой задачи. Ниже я поясню правильное решение:
В таблице CLIENTS пять строк. В первых двух строках в поле CLIENT_TYPE значение 1, ещё в двух...
Рано или поздно, каждый специалист, работающий с базами данных ORACLE, наталкивается на ограничение максимального количества элементов для оператора IN: SELECT *
FROM VOUCHERS
WHERE CLIENT_ID IN (28, 45, 46, 102,...) В ORACLE для оператора IN в скобках можно перечислять не более 1000 элементов через запятую. Иногда этого количества может не хватать. Что делать в этом случае? Во-первых, давай рассмотрим случай когда такого большого количества может не хватать? Не каждый день составляешь запрос...