首页 > 代码库 > 数据库行转列在现实需求中的用法

数据库行转列在现实需求中的用法

 

技术分享

select t.客户姓名,sum(case when t.收款类型=首款 then t.金额 else 0 end as 首款),sum(case when t.收款类型=尾款 then t.金额 else 0 end as 尾款) from table t
group by t.客户姓名

这段sql的意思 是 查询出所有客户收款信息 然后按客户分组    分组后  然后将这个客户的所有首款的金额放在一组 然后聚合 组成首款字段   所有尾款金额 放在一组 然后sum 聚合 组成尾款字段

最终查出 

技术分享

统计的时候 或者 做运算的时候非常有用

 

 

 

如果需要列转行 可以使用union方式 比如我们上面这个表

select t.客户姓名,t.首款 from table t where type=‘首款‘
union 
select t.客户姓名,t.尾款 from table t where type=‘尾款‘

 

数据库行转列在现实需求中的用法