`

Oracle合并多行

阅读更多
很多时候都在用这个,而没记录一下,存起来吧,非常好用,不用自己写了

WMSYS.WM_CONCAT


附上SQLSERVER的



SELECT DC.DIST_ID,DDP.CLIENT_ID,DDP.BILL_DATE,DDP.PROD_CODE,DDP.PROD_UNIT,DDP.PROD_QUANTITY,DPM.TARGET_PROD_CODE,DPM.TARGET_UNIT_ID,DPM.TARGET_PROD_UNIT
FROM DMS_DATA_PURCHASE DDP
INNER JOIN DMS_PROD_MAPPING DPM
ON  DDP.CLIENT_ID = DPM.CLIENT_ID
AND DDP.PROD_CODE = DPM.DIST_PROD_CODE
AND DDP.PROD_UNIT = DPM.DIST_PROD_UNIT
AND DDP.DELETE_TIME IS NOT NULL
--AND (DDP.CLIENT_ID = 393  OR DDP.CLIENT_ID = 394)
AND DDP.BILL_DATE BETWEEN '2011-03-01' AND '2011-03-31 23:59:59'
INNER JOIN DMS_CLIENT DC
ON DC.CLIENT_ID = DDP.CLIENT_ID
AND DC.DIST_ID  = 456
ORDER BY DC.DIST_ID, DDP.BILL_DATE DESC


SELECT TOP 10 *
FROM DMS_DATA_PURCHASE DDP
WHERE DDP.DELETE_TIME IS NOT NULL

SELECT *
FROM DMS_PROD_MAPPING DPM









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


--1. 创建处理函数
CREATE FUNCTION dbo.F_WM_CONCAT(@id int)
RETURNS varchar(8000)
AS
BEGIN
    DECLARE @str varchar(8000)
    SET @str = ''
    SELECT @str = @str + ',' + value FROM tb WHERE id=@id
    RETURN STUFF(@str, 1, 1, '')
END
GO
-- 调用函数
SELECt id, value = dbo.F_WM_CONCAT(id) FROM tb GROUP BY id

drop table tb
drop function dbo.F_WM_CONCAT
go
1
1
分享到:
评论

相关推荐

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

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

    oracle实现多行合并的方法

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

    Oracle多行记录合并

    在Oracle数据库中,多行记录的合并通常是为了将...总的来说,Oracle提供了多种方式来合并多行记录,每种方法都有其适用的场景和优缺点。在实践中,应根据具体情况灵活选择和组合这些方法,以达到最佳的数据处理效果。

    oracle多行合并一行

    ### Oracle多行合并为一行的方法 在Oracle数据库中,有时候我们需要将多行数据合并成一行进行展示或处理,尤其是在报表生成、数据展示等场景中。本文将详细介绍如何使用Oracle纯SQL语句实现这一功能,并通过具体...

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

    ### Oracle 10g与9i中的多行合并为一行函数详解 在Oracle数据库系统中,经常需要将多个行的数据合并成单行显示,尤其是在处理报告或者需要将多个值组合成一个字符串的情况下。本文将详细介绍如何在Oracle 10g与9i...

    ORACLE多行记录合并

    多行记录合并 采用的是方法4,希望对你们有用

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

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

    Oracle 多行记录合并/连接/聚合字符串的几种方法

    在Oracle数据库中,合并多行记录的字符串是一个常见的需求,特别是在报表或数据分析中。这个问题涉及到字符串的连接和聚合,使得多个记录的某个字段值能够整合到一行。在Oracle中,虽然没有内置的聚合函数直接支持...

    Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法

    在Oracle数据库中,有时我们需要将多个字段值转换为单个字符串,或者将多行记录合并成一行,这在数据处理和报告生成时尤其常见。Oracle提供了多种方法来实现这一目标,包括使用内置函数、PL/SQL过程以及一些高级特性...

    sql实现多行合并一行

    总结来说,通过巧妙地运用Oracle的`CONNECT BY`和`SYS_CONNECT_BY_PATH`函数,我们可以实现多行数据到一行的合并,这对于报告展示和数据分析非常实用。不过要注意的是,这种方法在大数据量下可能会有性能问题,因为...

    SQL优化过程中常见Oracle中"HINT"的30个用法

    在进行SQL优化的过程中,Oracle中的`HINT`是一种非常实用且强大的工具,它允许数据库管理员或开发者通过在SQL语句中添加注释的方式直接指导Oracle的优化器如何执行查询计划。这种方式可以有效地调整数据访问路径、...

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

    此标题明确指出了解决的问题:在Oracle数据库中,如何将特定字段的多行记录合并成一行记录。这种需求通常出现在报告或数据分析的过程中,当需要将多个相关的值组合在一起进行展示或进一步处理时。 ### 描述理解 ...

    Oracle多行记录字符串综合操作几种方法

    首先明确“合并多行字符串”的含义:即将多行记录中的某个字段的值汇总到一行中形成一个由特定分隔符连接起来的新字符串。比如,在示例数据中,我们希望将同一个国家的不同城市名称合并成一个字符串。 #### 方法一...

    oracle将以逗号分隔字符串转多行

    在Oracle数据库中,将逗号分隔的字符串转换为多行是常见的数据处理需求,尤其在需要对每个分隔项进行单独操作时。这个过程通常涉及到字符串处理函数,如`REGEXP_SUBSTR`和`REPLACE`,以及层次查询结构`CONNECT BY`。...

    oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法

    您可能感兴趣的文章:常用的Oracle doc命令(收藏)Oracle 多行记录合并/连接/聚合字符串的几种方法Oracle中字符串连接的实现方法php连接oracle数据库及查询数据的方法plsql连接oracle数据库报ora 12154错

    oracle列合并的实现方法

    在Oracle数据库中,有时我们需要将同一表中多个列的值合并为一个字符串,这被称为列合并。Oracle提供了多种方法来实现这一功能,特别是在不同版本中,这些方法有所不同。以下是Oracle列合并的一些常用方法: 1. **...

    oracle语法大全

    本篇文章将深入探讨如何在Oracle SQL中合并多行记录的字符串。 首先,我们要介绍的是`LISTAGG`函数。`LISTAGG`是Oracle 11g版本引入的新功能,它允许我们对分组后的数据进行聚合,将同一组内的多行数据合并成单行,...

Global site tag (gtag.js) - Google Analytics