查询a表的列: select column_name from user_tab_columns where table_name='A';
SELECT id, c.name, MAX(decode(a.name, '测试1', col)) 测试1, MAX(decode(a.name, '测试1', col)) 测试2 FROM a, (SELECT id, NAME, 'col1' code, col1 col FROM b UNION ALL SELECT id, NAME, 'col2' code, col2 FROM b) c WHERE a.code = c.code GROUP BY c.id, c.name;
如果列数未知,使用动态SQL拼接成上述形式
还是写个处理函数吧在函数中查询出a表中的字段列表,拼接成sql字符串,比如叫f_get_sql() select ID,NAME,f_get_sql() from B
select column_name
from user_tab_columns
where table_name='A';
c.name,
MAX(decode(a.name, '测试1', col)) 测试1,
MAX(decode(a.name, '测试1', col)) 测试2
FROM a,
(SELECT id, NAME, 'col1' code, col1 col
FROM b
UNION ALL
SELECT id, NAME, 'col2' code, col2 FROM b) c
WHERE a.code = c.code
GROUP BY c.id, c.name;
如果列数未知,使用动态SQL拼接成上述形式