我有一张这样的桌子:
Table A             
Customer    InvoiceNo       Region  Type    Amount
A001        10001           Europe  FG      100
B001        10002           Asia    FG      200
C001        10003           America MISC    50
D001        10004           Asia    FG      300
A001        10005           Europe  MISC    20
C001        10006           America MISC    10
B001        10007           Asia    FG      300我希望将Amount拆分为两列,即Sales_Amt和Misc。Region不是必需的。我希望得到的结果应该如下所示:
Customer    InvoiceNo       Type    Sales_Amt MISC
A001        10001           FG      100       0
B001        10002           FG      200       0
C001        10003           MISC    0         50
D001        10004           FG      300       0
A001        10005           MISC    0         20
C001        10006           MISC    0         10
B001        10007           FG      300       0 谢谢。
发布于 2011-05-16 18:00:21
这很简单:
select
    Customer, 
    InvoiceNo, 
    Type, 
    decode(Type, 'MISC', 0, 1) * Amount as Sales_Amt, 
    decode(Type, 'MISC', 1, 0) * Amount as Misc
from
    TableA
;发布于 2011-05-16 18:41:43
Select Customer,InvoiceNo,Type,
        Case when TYPE!='MISC' Then amount Else 0 End as Sales_Amt,
        Case when TYPE='MISC' Then amount Else 0 End as Misc
From TabalAhttps://stackoverflow.com/questions/6015636
复制相似问题