创建一个表,其中的列名来自另一个表的行值

假设我有一个单列的下表:

表格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