[英]How do I create a new table in SQL using the row values of another table as column names (dynamic)?
How do I create a new table in SQL using the row values of another table as column names? 如何使用另一个表的行值作为列名在SQL中创建新表? Please note the original table values are dynamic.
请注意原始表值是动态的。 Is dynamic Pivot the only option?
动态Pivot是唯一的选择吗?
For example, if my old table looks like: 例如,如果我的旧表看起来像:
players
-----------
Lebron James
Kobe Bryant
Dwayne Wade
Chris Bosh
James Harden
I want the new table to look like: 我希望新表看起来像:
Lebron James | Kobe Bryant | Dwayne Wade | Chris Bosh | James Harden
Try this example: 试试这个例子:
DROP TABLE #players
CREATE TABLE #players (name VARCHAR(200))
INSERT INTO #players
SELECT 'Lebron James'
UNION SELECT 'Kobe Bryant'
UNION SELECT 'Dwayne Wade'
UNION SELECT 'Chris Bosh'
UNION SELECT 'James Harden'
DECLARE @cmd VARCHAR(8000)
SET @cmd ='CREATE TABLE MyNewTable (id INT'
SELECT @cmd = @cmd + '
, ['+name+'] VARCHAR(255)'
FROM #players
SELECT @cmd = @cmd + ')'
PRINT @cmd
EXEC(@cmd)
EXEC('SELECT * FROM MyNewTable')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.