创建一个表,其中的列名来自另一个表的行值
假设我有一个单列的下表:
表格1
-----------
| nameCol |
-----------
| A |
| A |
| B |
| C |
-----------
我想用下列列名创建一个新表:
TABLE_2
| pk | A | B | C |
也就是说,一个表中的数据成为第二个表的列名。 在某个层面可能有一个关键点,但我无法真正得到答案。
我试过了:
create table Table_2 (
select group_concat(distinct(nameCol), " varchar(50), ")
from Table_1
);
您可以使用动态查询:
SELECT
CONCAT(
'CREATE TABLE Table_2 (',
GROUP_CONCAT(DISTINCT
CONCAT(nameCol, ' VARCHAR(50)')
SEPARATOR ','),
');')
FROM
Table_1
INTO @sql;
PREPARE stmt FROM @sql;
EXECUTE stmt;
请看这里的小提琴。
链接地址: http://www.djcxy.com/p/12611.html上一篇: Create a table with column names derived from row values of another table
下一篇: Issue with a manually instantiated SessionState provider