Sql 从另一个表列数据创建具有列名的表
我有一个单列的表,如下所示:Sql 从另一个表列数据创建具有列名的表,sql,sql-server,sql-server-2008,sql-server-2005,Sql,Sql Server,Sql Server 2008,Sql Server 2005,我有一个单列的表,如下所示: --------- | col | --------- | A | | B | | C | --------- ------------------- | A | B | C | ------------------- 我想创建一个具有以下列名的新表,如下所示: --------- | col | --------- | A | | B | | C | --------- ----------
---------
| col |
---------
| A |
| B |
| C |
---------
-------------------
| A | B | C |
-------------------
我想创建一个具有以下列名的新表,如下所示:
---------
| col |
---------
| A |
| B |
| C |
---------
-------------------
| A | B | C |
-------------------
有什么建议吗?非常感谢。一种方法是使用动态sql。 假设所有列的数据类型为int,可以执行以下操作:
---------
| col |
---------
| A |
| B |
| C |
---------
-------------------
| A | B | C |
-------------------
创建并填充样本表请在您将来的问题中保存此步骤:
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)
一种方法是使用动态sql。 假设所有列的数据类型为int,可以执行以下操作:
---------
| col |
---------
| A |
| B |
| C |
---------
-------------------
| A | B | C |
-------------------
创建并填充样本表请在您将来的问题中保存此步骤:
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)
你的问题不清楚。请按照正确的要求编辑它。实现这一点的一种方法是使用动态SQL;你应该使用pivot表,你使用哪种服务器端语言或者你想要纯sql?@CristianAbelleira你能帮我实现它吗?我不知道怎么办。你的问题不清楚。请按照正确的要求编辑它。实现这一点的一种方法是使用动态SQL;你应该使用pivot表,你使用哪种服务器端语言或者你想要纯sql?@CristianAbelleira你能帮我实现它吗?我不知道该怎么做。