使用来自另一个表列数据的列名创建表

Posted

技术标签:

【中文标题】使用来自另一个表列数据的列名创建表【英文标题】:Create table with column names from another tables column data 【发布时间】:2016-07-12 06:46:57 【问题描述】:

我有这样的单列表格:

---------
|  col  |
---------
|   A   |
|   B   |
|   C   |
---------

我想用以下列名称创建一个新表,如下所示:

-------------------
|  A  |  B  |  C  |
-------------------

有什么建议吗?非常感谢。

【问题讨论】:

您的问题不清楚。请使用正确的要求对其进行编辑 实现此目的的一种方法是使用动态 SQL ;) 你应该使用数据透视表***.com/a/15931734/6468577 您使用哪种服务器端语言或者您想要纯 sql ? @CristianAbelleira 你能帮我实现它吗?我不知道该怎么做。 【参考方案1】:

一种方法是使用动态 sql。 假设所有列的数据类型为 int,您可以执行以下操作:

创建并填充示例表(在您以后的问题中保存我们这一步):

DECLARE @T table
(
    col char(1)
)

INSERT INTO @T VALUES ('a'), ('b'), ('c')

构建动态sql:

DECLARE @Sql nvarchar(max) = 'CREATE TABLE YourNewTableName ('

SELECT @Sql = @Sql + col +' int,'
FROM @T 


SET @Sql = LEFT(@Sql, LEN(@Sql) - 1) +');'
--Print @sql

执行它(您可能需要先打印它以确保它正确):

EXEC(@Sql)

【讨论】:

以上是关于使用来自另一个表列数据的列名创建表的主要内容,如果未能解决你的问题,请参考以下文章

如何使用来自另一个表列的值优化列的更新?

ADF V2 - 基于表列参数化数据复制管道

如何在休眠中将表列与另一个表列映射

mysql修改表名,列名,列类型,添加表列,删除表列

在列名中使用别名创建表视图

如何使用看起来像 HSQLDB 关键字的列名创建表?