我有以 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 个值显示在多行和多列中的数据。我想要做的是为每个 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
提前致谢!
您可以使用以下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 表是无序的。因此,在您的示例中,您真的不知道任何给定值的原始来源。