我的查询。
INSERT INTO TARGET_TABLE (SELECT DATA FROM TABLE_DATA WHERE TYPE = 'HEADER') VALUES
(SELECT DATA FROM TABLE_DATA WHERE TYPE = 'ITEMS')
在此查询中,我尝试将数据插入TARGET_TABLE。 TABLE_DATA将具有以下格式的数据
SELECT DATA FROM TABLE_DATA WHERE TYPE = 'HEADER'
Result COUNTRY,ID,NAME
SELECT DATA FROM TABLE_DATA WHERE TYPE = 'ITEMS'
Result 'IN','123','xyz'
所以我期待以下
INSERT INTO TARGET_TABLE (COUNTRY,ID,NAME) VALUES ('IN','123','xyz')
答案 0 :(得分:1)
select case
是您所需要的
INSERT INTO TARGET_TABLE
(SELECT case when type='HEADER' then COL1 else 'aa' END
,case when type='HEADER' then COL2 else 'bb' END
,case when type='HEADER' then COL3 else 'cc' END
,case when type='HEADER' then COL4 else 'dd' END
FROM TABLE_DATA )
答案 1 :(得分:1)
您需要使用如下所示的动态查询:
BEGIN
EXECUTE IMMEDIATE
'INSERT INTO TARGET_TABLE ( '
|| SELECT DATA FROM TABLE_DATA WHERE TYPE = 'HEADER'
|| ') VALUES ('
|| SELECT DATA FROM TABLE_DATA WHERE TYPE = 'ITEMS'
|| ')';
END;
/
干杯!