2016-06-14 72 views
1

我有屬性表有多個數據。將行數據轉換爲沒有透視的列

我給簡單的例子

我有下列數據的表: -

<html> 
 
    <head></head> 
 
    <body> 
 
    <table border="1" style="width:100%"> 
 
    <tr> 
 
    <td>ID</td> 
 
    <td>NAME</td> 
 
    <td>ROLL NO</td> 
 
    </tr> 
 
    <tr> 
 
    <td>1</td> 
 
    <td>Description</td> 
 
    <td>94</td> 
 
    </tr> 
 
    <tr> 
 
    <td>2</td> 
 
    <td>StockNumber</td> 
 
    <td>80</td> 
 
    </tr> 
 
<tr> 
 
    <td>3</td> 
 
    <td>Keyword</td> 
 
    <td>20</td> 
 
    </tr> 
 
</table> 
 

 
    </body> 
 
    </html>

I want to show following output:-

<html> 
 
<body> 
 

 
<table border="1" style="width:100%"> 
 
    <tr> 
 
    <td>Description</td> 
 
    <td>StockNumber</td> 
 
    <td>Keyword</td> 
 
    </tr> 
 
    
 
    </tr> 
 
</table> 
 

 
</body> 
 
</html>

我想秀行數據(即: - DescriptionStockNumberKeyword)作爲列,而不使用Pivot和動態。 是否有任何其他的方式來顯示行數據爲列,動態

+1

是否有隻有5行? –

+0

@FelixPamittan: - 他們可能更多的行.. – Sanjiv

回答

0

請使用以下code.Its在SQL Server的工作在2012年

DECLARE @Attribute TABLE(
    ID  INT, 
    Name VARCHAR(250) 
) 

INSERT INTO @Attribute VALUES 
(1, 'Description'), 
(2, 'StockNumber'), 
(3, 'Price'), 
(4, 'Logo'), 
(5, 'Diagram'); 

SELECT MAX(CASE WHEN Name = 'Description' THEN ID END) AS Description, 
     MAX(CASE WHEN Name = 'StockNumber' THEN ID END) AS StockNumber, 
     MAX(CASE WHEN Name = 'Price' THEN ID END) AS Price, 
     MAX(CASE WHEN Name = 'Logo' THEN ID END) AS Logo, 
     MAX(CASE WHEN Name = 'Diagram' THEN ID END) AS Diagram 
FROM (
    SELECT Name,ID, 
     ROW_NUMBER() OVER (PARTITION BY Name ORDER BY (SELECT NULL)) AS rn 
FROM @Attribute) AS t 
GROUP BY rn 
+0

: - 其實我已經有表有這些行。我只需要查詢將行顯示爲列。 – Sanjiv

+0

你的意思是說你需要用逗號分隔的名字? –

+0

: - 其實我需要顯示所有行數據應該顯示爲列名(不是逗號分隔) – Sanjiv