您的位置:首页 > 数据库

SQL行转列式查询

2016-02-16 08:41 357 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_32592587/article/details/50672587
select
max(CASE name WHEN 'wks' THEN  a.num else 0 end) 'wks',
max(CASE name WHEN 'jxz' THEN  a.num else 0 end) 'jxz',
max(CASE name WHEN 'dpj' THEN  a.num else 0 end) 'dpj',
max(CASE name WHEN 'ywc' THEN  a.num else 0 end) 'ywc',
max(CASE name WHEN 'zt' THEN  a.num else 0 end) 'zt'
from(
select 'wks' name,COUNT(1) num from TaskList where TaskStates='未开始' and isDel=0
UNION ALL
select 'jxz' name,COUNT(1) num from TaskList where TaskStates='进行中' and isDel=0
UNION ALL
select 'dpj' name,COUNT(1) num from TaskList where TaskStates='待评价' and isDel=0
UNION ALL
select 'ywc' name,COUNT(1) num from TaskList where TaskStates='已完成' and isDel=0
UNION ALL
select 'zt' name,COUNT(1) num from TaskList where TaskStates='暂停' and isDel=0
) a

类似这样的查询可以一次性的从数据库中取出多个结果集,避免了多次链接数据库。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: