Разделить строку запятой и передать в пункт IN команды Select в Oracle
View more Tutorials:
В некоторых случаях, у вас есть одна строка (String), например:
'KING,JONES,FORD'
Вы хотите сделать из нее команду Select и возвратить результат, как в изображении ниже:

С Oracle > 9, вы можете написать следующую команду SQL:
-- ORACLE > 9.x Select Regexp_Substr('KING,JONES,FORD' ,'[^,]+' ,1 ,Level) Emp_Name From Dual Connect By Regexp_Substr('KING,JONES,FORD' ,'[^,]+' ,1 ,Level) Is Not Null;
Найти сотрудников именованные в String разделенные запятыми.
Select * From Employee Emp Where Emp.Emp_Name In ('KING','JONES','FORD');
Вам нужно сочетать 2 сплетенные команды:
Select * From Employee Emp Where Emp.Emp_Name In (Select Regexp_Substr('KING,JONES,FORD' ,'[^,]+' ,1 ,Level) Emp_Name From Dual Connect By Regexp_Substr('KING,JONES,FORD' ,'[^,]+' ,1 ,Level) Is Not Null);
Результат запуска команды:
