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

提前致谢!

4

1 回答 1

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 表是无序的。因此,在您的示例中,您真的不知道任何给定值的原始来源。

于 2013-05-21T19:18:17.730 回答