2013-01-16 3 views
0

У меня есть одна таблица со значениями, как «бл.1,2,3,4,5,6,7» в строке, как значения столбцовOracle, сочетающие столбцы с запятой значений, разделенных

ID Value 
101 5,6,7 
201 8,9,3 
301 3,4,5 

стоимости, внешний ключ другой Таблица B Таблица B

5 A 
6 C 
7 N 

есть ли способ я могу соединить эти две таблицы в одном запросе? Я хочу передать 101 и получить значения A C N.

+0

Может использовать форматирование и его трудно следовать, что именно вы хотели. – cmd

+0

По определению вы не можете иметь внешний ключ в B, который указывает на столбец 'value' в A, если 5 является допустимым значением в B, а не строкой' 5,6,7'. У вас действительно есть внешний ключ? Если вы это сделаете, модель данных должна быть другой. –

ответ

3

если ваша модель, как показано, что-то вроде этого?

select a.id, listagg(new_value, ',') within group (order by new_value) new_value 
    from a 
     inner join b 
       on ','||a.value||',' like '%,'|| b.value ||',%' 
group by a.id 

http://www.sqlfiddle.com/#!4/74e46/1

Смежные вопросы