通过在sql中传递行值将行转换为列

时间:2013-09-22 18:36:14

标签: sql sql-server-2008-r2

我有

等表格
Order_Id    InventoryId ItemType    total
1       5       Orange      5000
1       4       Apple       3000
2       1       Mango       3400
2       5       Orange      1700

如果我传递订单ID'1',我需要记录

Orange  Apple
5000    3000    

如果我传递订单ID'2',我需要记录

Mango   Orange
3400    1700

如何实现这一点可以为任何人提供帮助。

2 个答案:

答案 0 :(得分:2)

SELECT  SUM(CASE WHEN ItemType = 'Orange' THEN total ELSE 0 END) Orange,
        SUM(CASE WHEN ItemType = 'Apple' THEN total ELSE 0 END) Apple
FROM    TableNAme
WHERE   Order_Id = ?

答案 1 :(得分:0)

您应该简单地选择所需的列:

select ItemType,total from test33  where Order_Id=2;

结果是:

Mango,  3400
Orange, 1700