我的数据以多行和多列呈现,其中包含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
提前致谢!
答案 0 :(得分: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表不是有序的。所以,你真的不知道任何给定值的原始来源示例。