я обычно ожидать, что если у вас есть таблица с отношения в столбце ID, который вы хотели бы сделать простой внутреннее соединение: http://sqlfiddle.com/#!4/e8e41/5
select t1.id, t2.cd, t1.ind
from t1
inner join t2
on t2.id = t1.id
Однако, что бы не дать вы результат, который вы указали. Поле IND
будет заполнено для каждой строки.
Возможно, вы ищете для объединения, где cd = 'A'
. Я не знаю точку, но вы могли бы сделать что-то вроде этого: http://sqlfiddle.com/#!4/e8e41/12
select t2.id, t2.cd, coalesce(t1.ind,' ') as ind
from t2
left join t1
on t2.id = t1.id
and t2.cd = 'A'
order by id, cd
Или, возможно, вы хотите, чтобы связать ind
с первым cd
каждого id
. В этом случае для вас может быть что-то вроде этого (с использованием общего табличного выражения): http://sqlfiddle.com/#!4/e8e41/20
with cte as (
select id, cd, row_number() over (partition by id order by cd) as rn
from t2
)
select t1.id, cte.cd, case when rn = 1 then t1.ind else ' ' end as ind
from t1
inner join cte
on t1.id = cte.id
Спасибо. это сработало – pavan