表 A产品名称 数量 价格 单位 用户组1 用户组2 用户组3 用户组4
鸡翅 30 1.5 袋 1 0 1 0
饼干 40 4.5 袋 0 1 1 0
可乐 10 2.5 瓶 1 0 1 0要变成表如下结果。产品名称 数量 价格 单位 用户组类别
鸡翅 30 1.5 袋 用户组1
鸡翅 30 1.5 袋 用户组3
饼干 40 4.5 袋 用户组2
饼干 40 4.5 袋 用户组3
可乐 10 2.5 瓶 用户组1
可乐 10 2.5 瓶 用户组3请教大家帮我写下语句。最好是用  oracle 语句 能编译通过!
先谢谢大家了。

解决方案 »

  1.   

    select 产品名称,数量,价格,单位,用户组类别='用户组1' from Tb where 用户组1=1
    union all
    select 产品名称,数量,价格,单位,用户组类别='用户组2' from Tb where 用户组2=1
    union all
    select 产品名称,数量,价格,单位,用户组类别='用户组3' from Tb where 用户组3=1
    union all
    select 产品名称,数量,价格,单位,用户组类别='用户组4' from Tb where 用户组4=1
    order by 产品名称,用户组类别 
      

  2.   

    谢谢楼上,但是如果用户组不确定的话,还是不是方便。 union还有别的方法么。
    期待新的方法!