Я хочу, чтобы преобразовать следующие IN запроса в внутреннее соединение запроса:расщепление запятыми список в временную таблицу
select country, name, rank from table person_details
where country in ('india','USA','australia')
and name in ('tom', 'jill', 'jack')
and rank in ('first', 'third', 'fifith');
У меня есть два вопроса:
эта таблица большой, так что будет изменение этот запрос IN во внутреннее соединение ускорит работу.
Что будет лучшим способом разделить этот список, разделенный запятой, на столбец в некоторой временной таблице. Я вижу много примеров регулярных выражений, но они кажутся слишком сложными и большими.
Я использую Oracle 11g DB.
Таблица снимок:
Id name country rank
1 tom india first
2 jill USA second
3 jack aus first
Я не думаю, что здесь 'self join' будет работать быстрее, чем' IN', создать индекс на 'country' и' rank', который поможет ускорить работу. и в отношении списка, разделенного запятыми ... Я скажу: «У вас есть структура таблицы по крайней мере в« 1NF ». Если ваша таблица не находится в '1NF', вы можете столкнуться с серьезными проблемами производительности. –
См. Примеры здесь https://lalitkumarb.wordpress.com/category/oracle-delimited-string-manipulation/ –
@LalitKumarB Хороший ... !!! –