2017-06-07 129 views
0

將其列爲單獨的行我有這樣的選擇單行表的所有單元格的值,並在SQL

ID  col1   col2  col3  col4 
--------------------------------------------------- 
1   a   b   c   d 
2   e   f   g   h 

表所以,如果我通過ID 2它應該返回所有科拉姆值作爲獨立行,因爲這

Colum  Value 
--------------------- 
ID  2 
Col1  e 
col2  f 
col3  g 
col4  h 

使單排的所有細胞中分裂爲不同的行。

我怎樣才能做到這一點

回答

-1

請參閱過流鏈接下面的堆棧SQL query to split column data into rows

發現和你的問題是相同的。

+0

可以將其標記爲重複。 –

+0

希望你經歷這個問題..它實際上將第二個單元格數據拆分成行 –

1

unpivotunion all做到這一點的一種方法。

select 'id' as colu,cast(id as varchar(255)) as val from t where id=2 
union all 
select colu,val 
from t 
unpivot (val for colu in (col1,col2,col3,col4)) u 
where id=2 
+0

任何沒有指定列名稱的可能性。我的意思是所有collumns –

0

您可以使用跨如下應用:

Select Id as [Column], [Value] from yourcols 
    cross apply (values(col1), (col2), (col3), (col4)) rws([Value]) 
    where Id = 2 
+0

沒有指定列名稱的任何可能性。我的意思是所有的列 –

+0

我不這麼認爲...沒有提及列名引擎如何知道你需要什麼數據unpivot ...你可以使用information_schema或sys.columns rite動態生成? –

相關問題