`
mikixiyou
  • 浏览: 1100531 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
C3c8d188-c0ab-3396-821d-b68331e21226
Oracle管理和开发
浏览量:353632
社区版块
存档分类
最新评论

SQL实现多行变一行

阅读更多

在我们需要将表的多行记录根据某字段值相等聚合成逗号间隔的一行记录,我们可以采用下列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

分享到:
评论

相关推荐

    sql实现多行合并一行

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

    SQL多行变一行的方法

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

    sql 多行数据一行显示

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

    sql多行转列

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

    sql多行转一行

    在db2的编辑工具中写好的sql是换行的、多行的但是复制到项目中的property中的时候要求是一行的所以做了这个工具,希望对大家有帮助。。

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

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

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

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

    oracle数据库一行拆成多行.sql

    oracle数据库一行拆成多行.sql

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

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

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

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

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

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

    oracle10g,9i多行合并一行函数

    在Oracle 9i中,由于`wm_concat()`函数尚未被引入,因此需要采用更复杂的方法来实现多行合并为一行的功能。这里介绍一种使用`sys_connect_by_path()`函数结合`connect by`语法的方法。 **示例代码:** ```sql ...

    将SQL数据表的一列转换为一行.docx

    在数据库管理中,经常会遇到将多行数据转换为一行多列的情况。这类操作可以使用 stored procedure 来实现。在 MySQL 中,可以使用以下方法来将 SQL 数据表的一列转换为一行。 知识点1:使用存储过程实现数据转换 ...

    Sql Server:多行合并成一行,并做分组统计的两个方法

    代码如下:–创建 test 表 ,插入数据CREATE TABLE test(code varchar(50), [values] varchar(10),[count] int)INSERT test SELECT ‘001’, ... –方法一–将多行合并成一行,并做分组统计SELECT code, [values] = 

    SQL SERVER 根据关键字符,将一列分成多行

    可根据关键字符将一列分成多行显示,例如 A B 1 1.1.2 拆分成 1 1 1 1 1 2 进行相关的显示

    DB2 SQL 实现行转列,列转行

    DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列

    SQL 语句 将一个表中用特殊字符分割的字段转换成多行数据.docx

    SQL 字符串分割函数实现多行数据转换 在数据库中,经常会遇到将一个字段中的特殊字符分割的字符串转换成多行数据的情况。这是一个常见的需求,但是网上提供的解决方案往往非常复杂,难以理解和实现。为了解决这个...

    mysql如何实现多行查询结果合并成一行

    利用函数:group_concat(),实现一个ID对应多个名称时,原本为多行数据,把名称合并成一行。 其完整语法: GROUP_CONCAT(expr) 该函数返回带有来自一个组的连接的非NULL值的字符串结果。其完整的语法如下所示: GROUP...

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

    我们的目标是根据`type`字段将所有不同的`productCode`值拼接在一起,每个类型一行。 为了实现这个功能,我们可以创建一个自定义函数,如在描述中的`dbo.fun`。这是一个用户定义的函数(UDF),它接受`type`作为...

    oracle某个字段多行记录转化为一行

    为了实现将Oracle数据库中某个字段的多行记录合并成一行记录的目标,可以采用编写自定义函数的方法。下面详细介绍该方法的具体步骤: #### 创建函数 `f_m_t` 首先,创建一个名为`f_m_t`的函数,该函数接受一个参数...

Global site tag (gtag.js) - Google Analytics