SQL实现多行变一行
程序员文章站
2022-05-08 12:12:21
...
在我们需要将表的多行记录根据某字段值相等聚合成逗号间隔的一行记录,我们可以采用下列SQL来实现,简单、高效。
如表t下的记录:
a1 b1
1 aa
1 bb
1 cc
2 aa
2 aa
得到结果 应该是下列样式:
1 aa,bb,cc
2 aa,aa
在
Oracle数据库中,可以用这个SQL来实现:
select a1, substr(max(sys_connect_by_path(answer, ',')), 2) as b1
from (select a1,
b1,
row_number() over(partition by a1 order by b1) as rown
from t)
start with rown = 1
connect by prior a1 = a1
and prior rown = rown - 1
group by a1
下一篇: MySQL数据字典
推荐阅读
-
Sql function 多行中的列合并为一行一列的方法
-
Sql Server:多行合并成一行,并做分组统计的两个方法
-
Sql function 多行中的列合并为一行一列的方法
-
oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼接在一起
-
SQL Server中将多行数据拼接为一行数据(一个字符串)
-
SQL Sever中使用SQL语句实现把重复行数据合并为一行并用逗号分隔
-
Sql Server:多行合并成一行,并做分组统计的两个方法
-
oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼接在一起
-
SQL Server中将多行数据拼接为一行数据(一个字符串)
-
python一行sql太长折成多行并且有多个参数的方法