[英]Oracle SQL: Get value from column where column name comes from a another table
[英]In oracle can we create table having column name from another table column value name?
在oracle pl / sql中有什么方法可以创建一个新表,该表的列名来自其他表的列数据值。
例如:
TableA
column1
-----------
A
B
C
D
从这个新表出来作为
TABLE2
A B C D
- - - -
其中A,B,C,D充当表2的列名
提前致谢。
是的,使用PL / SQL构建动态查询,然后使用EXECUTE IMMEDIATE
:
Oracle安装程序 :
CREATE TABLE TableA ( column1 ) AS
SELECT 'A' FROM DUAL UNION ALL
SELECT 'B' FROM DUAL UNION ALL
SELECT 'C' FROM DUAL UNION ALL
SELECT 'D' FROM DUAL;
PL / SQL :
DECLARE
p_sql VARCHAR2(4000);
BEGIN
SELECT 'CREATE TABLE TableB ('
|| LISTAGG(
column1 || ' NUMBER',
','
) WITHIN GROUP ( ORDER BY ROWNUM )
|| ')'
INTO p_sql
FROM TableA;
EXECUTE IMMEDIATE p_sql;
END;
/
输出 :
SELECT * FROM TableB;
A | B | C | D -: | -: | -: | -:
db <> 在这里拨弄
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.