MYSQL中竖表和横表之间的相互转换

1. 横表转为竖表

表tb的结构为
在这里插入图片描述
表中的数据为
在这里插入图片描述
现在要求查询到如下结果
在这里插入图片描述

实现要求的SQL查询语句

SELECT 单位 as unit ,'刑拘' as clcs , 刑拘 as cout from  tb
UNION 
SELECT 单位 as unit ,'逮捕' as clcs , 逮捕 as cout from  tb
UNION
SELECT 单位 as unit ,'起诉' as clcs , 起诉 as cout from  tb
ORDER BY unit;
2. 竖表转为横表

tb2表的结构如下
在这里插入图片描述
tb2的数据如下
在这里插入图片描述
现在要求查询到如下结果
在这里插入图片描述
实现要求的SQL查询语句

SELECT unit AS '单位',
MAX(case clcs WHEN '刑拘' then cout ELSE 0 end) 刑拘,
MAX(case clcs WHEN '逮捕' then cout ELSE 0 end) 逮捕,
MAX(case clcs WHEN '起诉' then cout ELSE 0 end) 起诉
FROM tb2
GROUP BY unit;
Logo

更多推荐