oracle sql query - PullRequest
       6

oracle sql query

1 голос
/ 19 декабря 2010

У меня есть таблица A с кодом столбца, который содержит значения AB, BC

-----
code
-----
'AB','BC'

Таблица B имеет следующую строку

------------------------------
AB   4  2  1   
------------------------------
-------------------------------
BC   1  2  3
--------------------------------

Для AB есть запись строки в другой таблице B и аналогично для BC

я хочу использовать предложение IN для кода столбца

select regexp_substr(replace (a.code,'''',''), '[^,]+', 1, level) from  A a , C b 
WHERE a.id ='SC_1' AND a.id= b.id AND a.name = 'CODE'
connect by level <= length(regexp_replace(replace (a.code,'''',''), '[^,]*')) + 1

когда я выполняю выше sql, результата нет, я думаю, что предложение IN требует строки вместо запятой.

1 Ответ

3 голосов
/ 19 декабря 2010

Вам нужно будет разбить вашу строку code на несколько строк.Попробуйте:

select * from B
where B.code in (
    select regexp_substr(code, '[^,]+', 1, level) from A
    connect by level <= length(regexp_replace(code, '[^,]*')) + 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...