2013-05-21 46 views
0

我有多個行和列中有0或1個值的數據。我想要做的是爲每個1創建一個唯一的行,但有時候會連續多個1。對於前:爲一列中的每一列返回不同的行

**A B C D** 
    1 0 1 1 
    0 0 0 1 
    1 1 0 0 

我想有回報六排,都在一列像提前讓

**RETURN** 
    A 
    C 
    D 
    D 
    A 
    B 

謝謝!

回答

1

您可以用union all語句做到這一點:

select val 
from ((select 'A' as val from t where A = 1) union all 
     (select 'B' from t where B = 1) union all 
     (select 'C' from t where C = 1) union all 
     (select 'D' from t where D = 1) 
    ) t 

作爲一個說明:我希望你有其他列,可以在輸出中包含。根據定義,SQL表不是有序的。所以,對於任何給定的值,你真的不知道原始源的例子。

+0

是的,我有其他專欄來訂購數據。爲了簡單起見,我只提供了相關部分。這工作像一個魅力。謝謝! –

+0

@Ron然後接受他的回答! – orbfish

相關問題