`

sql 多行合并问题 zt

阅读更多
写道
内容引自:
多行一列数据合并成一行一列数据
http://topic.csdn.net/u/20090714/17/5FE6A0F7-CE78-4936-BE31-21D462236059.html

在MySQL和Oracle中实现行合并
http://www.blogjava.net/rain1102/archive/2009/06/24/283867.html


SQL Server

--SQL2005中的方法2
create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
go

select id, [values]=stuff((select ','+[value] from tb t where id=tb.id
for xml path('')), 1, 1, '')
from tb
group by id

/*
id values
----------- --------------------
1 aa,bb
2 aaa,bbb,ccc

(2 row(s) affected)

*/

drop table tb



MySQL

select name , group_concat(email order by email separator ", ") as email from student group by name


Oracle

如果以上效果想在Oracle中显示, 则比较复杂点了, 因为Oracle中没有行合并函数, 则需要使用sys_connect_by_path()来实现, 代码如下:
select name, ltrim(sys_connect_by_path(email,','),',') email from(
select name,email,
row_number() over(partition by name order by email) rn,
count(*) over(partition by name) cnt
from student
) where level = cnt
start with rn = 1
connect by prior name = name and prior rn + 1 = rn

 这是别人写的,我试验了mysql的部分,group_concat是一个很好用的函数,简单易行,oracle和 sql server的解决方案还没试验,估计也差不多吧

分享到:
评论
1 楼 ljy520zhiyong 2013-07-30  
     

相关推荐

    sql实现多行合并一行

    在SQL中,有时候我们需要将查询结果中多行的数据合并成一行,这在处理某些特定的报表或数据分析时非常有用。这种技术通常被称为行合并或行聚合。在本例中,我们将探讨如何使用纯SQL实现这一功能,特别是针对Oracle...

    sql 多行合并某一列字符串拼接的示例

    在SQL中,将多行数据合并为一行,尤其是在某一列进行字符串拼接,是一项常见的需求。这通常用于汇总数据、创建报表或者为了分析目的而整合信息。本文将深入探讨如何利用SQL实现多行数据的合并,特别关注字符串拼接的...

    sql多行转列

    主要是关于sqlserver的多行转列的问题,这是我经过个人测试的语句。

    sybase数据库多行合并为一行多列.sql

    sybase数据库是不支持group_concat函数的,此文件为sybase存储过程样例,可以将多行信息按标识合并为一行多列。

    一列分割成多列,多行合并为一行

    SQL语句用with将列分割成多列存为临时表,再将多行某个字段拼接合并为一行

    SQL多行变一行的方法

    SQL方法,将一列中的多行变为一行,将按一定条件筛查出来的多行数据变为一行数据

    SQL 合并多行记录的方法总汇

    SQL中合并多行记录的方法总汇: –1. 创建表,添加测试数据 CREATE TABLE tb(id int, [value] varchar(10)) INSERT tb SELECT 1, ‘aa’ UNION ALL SELECT 1, ‘bb’ UNION ALL SELECT 2, ‘aaa’ UNION ALL SELECT 2...

    sql 多行数据一行显示

    多行数据一行显示多行数据一行显示多行数据一行显示多行数据一行显示

    oracle实现多行合并的方法

    本文实例讲述了oracle实现多行合并的方法。分享给大家供大家参考。具体分析如下: 在写sql时,经常会有将某列的字段合并起来,比如将某人名下每个月的工资列示,但是每个人只能占一行。 像这种场景,可能用行列转换...

    在SQL Server中将多行合并为一行

    在SQL Server中,将多行合并为一行是一个常见的需求,特别是在数据分析和报表生成时。这个过程通常被称为数据透视或行列转换。在这个场景中,我们使用SQL Server中的`PIVOT`操作来实现这一目标。`PIVOT`是SQL Server...

    SQL Server将一列的多行内容拼接成一行的实现方法

    昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 ...

    SQL脚本文件合并工具

    通过“SQL脚本文件合并工具”,我们可以将分散的SQL脚本整合到一起,形成一个大的SQL脚本文件,这样在SQL*Plus中只需要运行一次,就能完成所有脚本的执行,避免了反复打开、执行单个文件的繁琐步骤。 合并过程可能...

    sql server多行数据拼接的实例方法

    在SQL Server中,有时我们需要将多行数据拼接成单行字符串,这在处理报告、合并数据或创建自定义报表时非常有用。本实例将详细解释如何在SQL Server中实现多行数据的拼接。 首先,让我们理解问题背景。假设我们有一...

    SQL语句行数据拆成多行及多行数据合并成一行的方法.docx

    ### SQL语句行数据拆成多行及多行数据合并成一行的方法 #### 一、SQL语句对一行(单元格)数据拆分成多行 在处理数据时,有时我们需要将一行数据拆分成多行,这在数据分析和报表制作中非常常见。下面将详细介绍几...

    SqlServer,将多行记录按分组信息一行显示

    SqlServer将多行记录按分组信息一行显示

    Oracle 多行记录合并_连接_聚合字符串的几种方法_oracle_脚本之家1

    在Oracle 11g及更高版本中,`LISTAGG`函数提供了一种简洁的方式来合并多行记录。它可以方便地处理聚合字符串,而且支持排序。例如: ```sql SELECT country, LISTAGG(city, ', ') WITHIN GROUP (ORDER BY city) ...

    SQL Server中多行数据更新的触发器应用研究.pdf

    文章主要通过两个开发实例来阐述如何在SQL Server中应用触发器来处理多行数据更新的问题。第一个实例关注如何在学生表中插入一批新生记录后,自动生成对应的成绩表记录。在该实例中,通过创建一个数据插入触发器,...

    SQL脚本文件合并工具.exe

    利于将多个分散的sal脚本合并为一个sql文件。

    Sql Server合并复制

    SQL Server的合并复制是一种同步和异步数据复制技术,它允许分布在不同地理位置的数据库之间进行数据交换。在SQL Server环境中,合并复制是分布式数据库解决方案的一部分,特别适合于那些网络连接不稳定或者带宽有限...

Global site tag (gtag.js) - Google Analytics