簡體   English   中英

如何使用另一個表的行值作為列名(動態)在SQL中創建新表?

[英]How do I create a new table in SQL using the row values of another table as column names (dynamic)?

如何使用另一個表的行值作為列名在SQL中創建新表? 請注意原始表值是動態的。 動態Pivot是唯一的選擇嗎?

例如,如果我的舊表看起來像:

players
-----------
Lebron James
Kobe Bryant
Dwayne Wade
Chris Bosh
James Harden

我希望新表看起來像:

Lebron James | Kobe Bryant | Dwayne Wade | Chris Bosh | James Harden

試試這個例子:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM