У меня есть такая таблица:
Create Table PersonAgent (
PersonID varchar2(10) not null,
AgentID varchar2(10) not null,
Address varchar2(50),
City varchar2(50),
Country varchar2(50)
)
Что ж, мне нужно сгенерировать эту таблицу новой, потому что некоторые данные неверны.
Если PersonID и AgentID совпадают, тоЯ могу взять другие атрибуты такими, какие они есть, но если они не совпадают, мне нужно прочитать из другой таблицы.
Маленький пример:
INSERT INTO PersonAgent_copy(PersonID, AgentID, Address, City, Country)
Select Pa.Persid, Pa.Agentid,
(Case
When Pa.Personid = Pa.Agentid
Then pa.Address
ELSE (SELECT p.Address
FROM Person p
Where Pa.Agentid = P.Personid)),
(Case
When Pa.Personid = Pa.Agentid
Then pa.City
ELSE (SELECT p.City
FROM Person p
Where Pa.Agentid = P.Personid)),
(Case
When Pa.Personid = Pa.Agentid
Then pa.Country
ELSE (SELECT p.Country
From Person P
Where Pa.Agentid = P.Personid))
FROM PersonAgent pa
(Есть еще несколько атрибутов, которыеработает так же)
Какой самый быстрый способ сделать это?