2016-01-13 82 views
-2

我有以下結構在SQL Server表中的數據:SQL Server行要列數據

Engine_No Date Process Bolt_No1 B1Value1 B1Value2 B1Value3 Bolt_No2 B2Value1 B2Value2 B2Value3 Bolt_No3 B3Value1 B3Value2 B3Value3 Bolt_No4 B4Value1 B4Value2 B4Value3 

我想顯示查詢的結果如下:

Engine_No Date Process Bolt_No1 B1Value1 B1Value2 B1Value3 
Engine_No Date Process Bolt_No2 B2Value1 B2Value2 B2Value3   
Engine_No Date Process Bolt_No3 B3Value1 B3Value2 B3Value3 
Engine_No Date Process Bolt_No4 B4Value1 B4Value2 B4Value3 

可有人建議一個實現此目的的查詢?

+0

SQL表結構不清晰,在所有請在工具欄{}中查看您的問題並對其進行格式設置(我嘗試過,但仍然沒有意義){}用於創建固定佈局行。 –

+0

這是什麼表?一種方法是將'UNION'與幾個不同的查詢一起使用,但我不會嘗試這樣做。 –

+3

也看起來像http://stackoverflow.com/questions/34742988/sql-server-row-to-columns –

回答

1

你可以做一個選擇是這樣的:

SELECT 
    * 
FROM 
(
    (
     SELECT 
      Engine_No, 
      Date, 
      Process, 
      Bolt_No1, 
      B1Value1, 
      B1Value2, 
      B1Value3 
     FROM 
      Engines 
    ) UNION (
     SELECT 
      Engine_No, 
      Date, 
      Process, 
      Bolt_No2, 
      B2Value1, 
      B2Value2, 
      B2Value3 
     FROM 
      Engines 
    ) UNION (
     SELECT 
      Engine_No, 
      Date, 
      Process, 
      Bolt_No3, 
      B3Value1, 
      B3Value2, 
      B3Value3 
     FROM 
      Engines 
    ) UNION (
     SELECT 
      Engine_No, 
      Date, 
      Process, 
      Bolt_No4, 
      B4Value1, 
      B4Value2, 
      B4Value3 
     FROM 
      Engines 
    ) 
) AS tmp 
ORDER BY Engine_No 

唯一的問題是,由於每列只能有一個名稱,你會不知道哪個行具有的列。

你通常會怎麼做,在這樣的情況選擇你需要什麼,然後對其進行格式化如何你想它到任何語言,你在顯示它的樣子。

+0

複製感謝它工作正常 –