2017.7.14 使用case when和group by将多条数据合并成一行,并且根据某些列的合并值做条件判断来生成最终值
2018-01-04 16:41
447 查看
参考来自:http://bbs.csdn.net/topics/390737006
1.效果演示
(1)不做处理
(2)合并多列,并对后四列的值做并集处理
2.SQL语句
(1)不做处理
1 SELECT 2 C .fd_tenantid AS fdTenantId, 3 C .fd_resid AS fdResid, 4 C .fd_res_name AS fdResName, 5 C .fd_service AS fdService, 6 b.fd_get AS fdGET, 7 b.fd_post AS fdPOST, 8 b.fd_put AS fdPUT, 9 b.fd_delete AS fdDELETE 10 FROM 11 t_usergroup AS A 12 INNER JOIN t_permission AS b ON A .fd_groupid = b.fd_groupid 13 INNER JOIN t_resource AS C ON b.fd_resid = C .fd_resid 14 INNER JOIN t_tenant AS d ON A .fd_tenantid = d.fd_tenantid 15 WHERE 16 d.fd_tenant_name = 'root' 17 and a.fd_groupid in (10026,10029) 18 19 ORDER BY c.fd_res_name
(2)合并多列,并对后四列的值做并集处理
当列fd.get的和>=1(至少有一个真),则返回1。1 SELECT 2 C .fd_tenantid AS fdTenantId, 3 C .fd_resid AS fdResid, 4 C .fd_res_name AS fdResName, 5 C .fd_service AS fdService, 6 (CASE WHEN SUM(b.fd_get) >=1 THEN 1 ELSE 0 END) AS fdGET, 7 (CASE WHEN SUM(b.fd_post) >=1 THEN 1 ELSE 0 END) AS fdPOST, 8 (CASE WHEN SUM(b.fd_put) >=1 THEN 1 ELSE 0 END) AS fdPUT, 9 (CASE WHEN SUM(b.fd_delete) >=1 THEN 1 ELSE 0 END) AS fdDELETE 10 FROM 11 t_usergroup AS A 12 INNER JOIN t_permission AS b ON A .fd_groupid = b.fd_groupid 13 INNER JOIN t_resource AS C ON b.fd_resid = C .fd_resid 14 INNER JOIN t_tenant AS d ON A .fd_tenantid = d.fd_tenantid 15 WHERE 16 d.fd_tenant_name = 'root' 17 and a.fd_groupid in (10026,10029) 18 19 GROUP BY 20 d.fd_tenantid,c.fd_resid,c.fd_service 21 22 ORDER BY c.fd_res_name
相关文章推荐
- 2017.7.14 使用case when和group by将多条数据合并成一行,并且根据某些列的合并值做条件判断来生成最终值
- PostgreSQL在Update时使用Substring函数截取字符串并且加上CASE WHEN THEN条件判断
- 在SQL的查询条件中使用case when取数据
- 使用jQuery动态创建一个表格(根据用户输入的内容添加一行数据,并且能逐行删除)
- 点击添加按钮,使用ajax动态添加一行和移除一行,并且序号重新排序和数据不重复操作判断
- 合并多行查询数据到一行:使用自连接、FOR XML PATH('')、STUFF或REPLACE函数
- case when then 用在条件判断上
- EXCEL 公式使用小计 生成sql 语句 判断某一数据是否在另一列中出现
- oracle case when then 条件判断
- 根据条件查询生成两张表并合并绑定datagridview控件
- Sql Server里巧用Case将多行显示的数据合并为一行显示
- SQL利用Case When Then多条件判断
- 在Repeater控件中使用if语句判断前4条数据 和后面数据样式 不同 并且对4求余的样式又是一种 老是出错
- SQLServer 利用Case When Then多条件判断
- 每天学习一算法系列(12) (求1+2+…+n,不能使用乘除法,for、while、if 、else、switch、case 等关键字以及条件判断语句)
- Sql语句中使用Case When Then判断
- sql T_sql 利用Case When Then多条件判断SQL 语句
- Datagrid数据绑定后,根据不同条件判断显示问题
- 【练习】题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句
- SQL利用Case When Then多条件判断