Мне нужно создать подзапрос, чтобы выбрать строки, имеющие соответствующие значения в столбце.Oracle Subquery
Пример
Select *
from person
where first_name in ('Java','SQL','Oracle');
Однако этот список внутри скобок может быть большим, Шифрование до 30000 значений. Я буду читать значения из файла и передам его внутри этой скобки. Однако я думал, что может быть ограничение количества значений, которое я могу предоставить в круглых скобках. Существует ли оптимальное решение для решения этого сценария без создания и загрузки новой таблицы с данными?
EDIT: Спасибо за ваши ответы. Является ли приведенный ниже запрос опцией для рассмотрения -
Select *
from person
where first_name like 'Java'
or first_name like 'SQL'
or first_name like 'Oracle';
Спасибо.
Вы можете иметь только 1000 значений в списке IN. – cagcowboy
30 000 значений, вероятно, не будут обрабатываться эффективно, если вообще. Вы бы лучше загрузили их в таблицу и позволили СУБД использовать ее оптимизатор в полной мере. Возможно, существует верхняя граница размера SQL, которую вы можете написать; 30 000 значений, скорее всего, подтолкнут этот предел. –