2017-03-01 77 views
-1

我在sql表中我想將fieldColumnName更改爲列,將fieldValue更改爲行。 這是我的表像將行值更改爲SQL中的列

Table Image

+1

您正在使用哪個數據庫管理系統? –

+1

請閱讀http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557和接受的答案 –

+2

既然你用'pivot'標記了它,你就知道你想要做什麼的技術名稱。所以我假設你在網上搜索瞭如何做到這一點,但無法讓它工作。你能告訴我們你試過了什麼嗎? – HoneyBadger

回答

0

根據你的問題,你想改變表(其他城市列名以及數據類型)

ALTER TABLE tablename 
    CHANGE `fieldColumnName` `column` VARCHAR(255), 
    CHANGE `fieldValue` `row` VARCHAR(255) 

在上面查詢更改數據類型爲你希望。

+0

這不是他要求的。請再讀一遍。 –

0

如果你知道所有的fieldColumnName列的可能值那麼你可以使用旋轉這樣的:

declare @data table(fieldValue varchar(50), fieldColumnName varchar(50)) 

INSERT INTO @data 
SELECT '1 - value', 'col1' 
UNION 
SELECT '2 - value', 'col2' 
UNION 
SELECT NULL, 'col6' 

select * 
from @data 

select col1, col2, col3 
from 
(
    select fieldValue, fieldColumnName 
    from @data 
) d 
pivot 
(
    max(fieldValue) 
    for fieldColumnName in (col1, col2, col3) 
) piv;