У меня есть сценарий, похожий на следующий вопрос «join comma delimited data column». Но этот вопрос отличается от того, что мне нужно выбрать из таблицы T1.Соединяя таблицы с и без конкатенированных столбцов
CREATE TABLE T1 ([col1] varchar(2), [col2] varchar(5));
INSERT INTO T1 ([col1], [col2], [col3])
VALUES
('C1', 'john',8),
('C2', 'alex',10),
('C3', 'piers',10),
('C4', 'sara',10);
CREATE TABLE T2 ([col1] varchar(2), [col2] varchar(8));
INSERT INTO T2 ([col1], [col2] , [col3])
VALUES
('R1', 'C1,C4',10),
(NULL, 'C3,C2,C5',10),
('R3', 'C5,C1,C4',8);
В конечном итоге, нужно выбрать значения из таблицы T1, и флаг, существует ли соответствующее непустое значение в таблице T2. Также необходимо рассмотреть [col3]
при соединении.
Ожидаемый результат
--- Джон, да --- (Потому что 'R3' присутствует)
--- Алекс, нет ---
- - Пирс, No ---
--- Сара Да --- (Потому что 'R1' присутствует)
ВОПРОС
Каков наилучший способ написать этот запрос в Oracle 8i?
Обновлены ссылки: [скрипка 1] (http://sqlfiddle.com/#!4/3c4a8/1) и [скрипка 2] (http://sqlfiddle.com/#! 4/a4216/1) – Lijo
Поскольку вы используете 8i, я предполагаю, что это устаревшая база данных, которую вы не можете контролировать. Но все же, кто-то должен сказать это: нормализация таблиц сделает это намного проще. –