您的位置:首页 > 数据库

关于行列转换.

2009-12-11 09:23 253 查看
p_ID p_Num s_id

1      10         01
1      12         02
2      8           01
3      11         01
3      8           03

select p_id, (select p_Num from a where s_id = 01) as s1_id,
其中:p_ID为产品ID,p_Num为产品库存量,s_id为仓库ID。请用SQL语句实现将上表中的数据合并,合并后的数据为:
p_ID s1_id s2_id s3_id
1      10      12      0
2      8        0        0
3      11      0        8
其中:s1_id为仓库1的库存量,s2_id为仓库2的库存量,s3_id为仓库3的库存量。如果该产品在某仓库中无库存量,那么就是0代替。

 

 

一个经典的行列转换.

有很多种方法.

但是我在网上看到一个最简单的方法.

就是

DB2数据库

select p_id,
case when s_id = 1 then p_num else 0 end as s1_id,
case when s_id = 2 then p_num else 0 end as s2_id,
case when s_id = 3 then p_num else 0 end as s3_id
from table
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  产品 数据库 table db2 sql