当前位置:首页 » 编程语言 » sql多行合并

sql多行合并

发布时间: 2023-01-17 08:54:22

‘壹’ sql中按条件多行值合并成一列

修改前:1列多行数据

示例语句


select类别,名称=(stuff((select','+名称fromTable_Awhere类别=A.类别forxmlpath('')),1,1,''))fromTable_AasAgroupby类别

‘贰’ SQL多行合并为一行,SQL语句如何写

最简捷直观的方法就是利用分组

selectID,
Sum(语文)语文,
Sum(数学)数学,
Sum(英语)英语
fromscores
groupbyID

你可以直接用下面的语句在SQL Server中测试结果:

DECLARE@ScoresVartable(
IDintNOTNULL,
Chineseint,
Mathint,
Englishint);

Insertinto@ScoresVar
values(1,70,null,null)
Insertinto@ScoresVar
values(1,null,80,null)
Insertinto@ScoresVar
values(1,null,null,90)
Insertinto@ScoresVar
values(2,75,null,null)
Insertinto@ScoresVar
values(2,null,85,null)
Insertinto@ScoresVar
values(2,null,null,95)


selectID,
SUM(Chinese)Chinese,
Sum(Math)Math,
Sum(English)English
from@ScoresVar
groupbyID

还有一种方法,可能更通用一点,利用 FOR XML PATH 和STUFF函数来做,虽然复杂,但是对表的数据类型无限制。

还是上面的测试数据,你可以通过下面的代码来得到你想要的数据:

SELECTID,
STUFF((SELECT','+Cast(A.Chineseasvarchar)
[email protected]=B.IDFORXMLPATH('')),1,1,'')AsChinese,
STUFF((SELECT','+Cast(A.Mathasvarchar)
[email protected]=B.IDFORXMLPATH('')),1,1,'')AsMath,
STUFF((SELECT','+Cast(A.Englishasvarchar)
[email protected]=B.IDFORXMLPATH('')),1,1,'')AsEnglish
From@ScoresVarB
GroupByID
--输出结果
IDChineseMathEnglish
1708090
2758595

‘叁’ SQL 多行多列数据清洗合并为一行

SELECT  

            A,

            GROUP_CONCAT( B  SEPARATOR  ','  ),

            GROUP_CONCAT( C  SEPARATOR   ','  )

FROM

            table_name 

GROUP BY

            A

1.GROUP_CONCAT()中的值为你要合并的数据的字段名;

2.SEPARATOR 函数是用来分隔这些要合并的数据的 ,' ' 中是你要用哪个符号来分隔,可以直接不填符号默认为空值;

2.必须要用GROUP BY 语句来进行分组管理,不然所有的数据都会被合并成一条记录

参考链接

https://www.cnblogs.com/shoshana-kong/p/11147690.html

‘肆’ sql多行多列合并成一行多列,

您好利用分析函数 sum max min 等均可实现此功能(oracle 中 空值不参与大小比较(11g是这样的 其他版本需要你自己测试相爱))
如:
select 产品, max(标价),max(二标价),max(三标价) from table group by 产品;
或者
select 产品, sum(标价)),sum(二标价),sum(三标价) from table group by 产品;

热点内容
如何访问电脑工作组 发布:2025-07-16 09:39:24 浏览:182
动态优先权算法 发布:2025-07-16 09:39:02 浏览:201
火车wifi密码是多少啊 发布:2025-07-16 09:35:46 浏览:755
sql的视图是从中导出的 发布:2025-07-16 09:31:34 浏览:783
安卓如何打开shell窗口 发布:2025-07-16 09:28:09 浏览:311
华为荣耀备忘录文件夹 发布:2025-07-16 09:23:23 浏览:972
基于特征匹配算法 发布:2025-07-16 09:18:23 浏览:46
梦香神奇宝贝服务器的ip 发布:2025-07-16 09:14:07 浏览:212
电子密码手套箱是什么 发布:2025-07-16 09:13:27 浏览:799
手机连接数据库 发布:2025-07-16 09:13:23 浏览:132