`

Concatenate Multiple Column Records

阅读更多
Tip of the Week
Tip for Week of October 16, 2006

Concatenate Multiple Column Records

This tip comes from Galina Petrenko, a Sr. Programmer Analyst at Harte-Hanks Inc. in Langhorne, PA.


In Oracle9i Database and later, it's possible to rotate the vertical presentation of data into horizontal presentation. The following demonstrates a simple way (without XML parsers or PL/SQL stored structures) to convert vertical presentation into horizontal presentation; it will concatenate multiple column records into a single string.


-- Temporary Data

create table TMP_TEST ( ID NUMBER, NumVal NUMBER, STRVAL VARCHAR2(32) );

insert into TMP_TEST values(1, 100, 'Hello');
insert into TMP_TEST values(1,-100, 'World');
insert into TMP_TEST values(2, 1, 'Concatenate');
insert into TMP_TEST values(2, 2, 'In String');
insert into TMP_TEST values(2, 3, 'using Connect By');
insert into TMP_TEST values(2, 4, 'Using SYS_CONNECT_BY_PATH');

commit;

-- Check Vertical Data Presentation

select * from TMP_TEST;

ID         NUMVAL     STRVAL
---------- ---------- --------------------------------
1          100        Hello
1          -100       World
2          1          Concatenate
2          2          In String
2          3          using Connect By
2          4          Using SYS_CONNECT_BY_PATH

6 rows selected.

-- Get Concatenated String with Specific Delimiter

def Delimiter=" "

SELECT
ID,
SUBSTR(MAX(REPLACE(
SYS_CONNECT_BY_PATH(STRVAL, '/')
,'/','&Delimiter')),2) Concatenated_String
FROM (
select A.*,
row_number() OVER (Partition by ID order by ID) ROW#
from TMP_TEST A)
START WITH ROW#=1
CONNECT BY PRIOR ID=ID AND PRIOR row# = row# -1
GROUP BY ID
;

ID          CONCATENATED_STRING
----------  -----------------------------------------------------------------
1           Hello World
2           Concatenate In String using Connect By Using SYS_CONNECT_BY_PATH

-- More Generic:

def Column_Sort_Name=ID
def Column_Name=NumVal
def Delimiter="|"

SELECT
ID,
SUBSTR(MAX(REPLACE(
SYS_CONNECT_BY_PATH( &Column_Name , '/')
,'/','&Delimiter')),2) Concatenated_String
FROM (
select
A.*,
row_number() OVER (Partition by ID order by &Column_Sort_Name ) ROW#
from TMP_TEST A)
START WITH ROW#=1
CONNECT BY PRIOR &Column_Sort_Name = &Column_Sort_Name
AND PRIOR row# = row# -1
GROUP BY &Column_Sort_Name
;


ID          CONCATENATED_STRING
----------  -----------------------------------------------------------------
1           100|-100
2           1|2|3|4



def Delimiter=","


ID          CONCATENATED_STRING
----------  -----------------------------------------------------------------
1           100,-100
2           1,2,3,4

分享到:
评论

相关推荐

    CONCATENATE函数.xls

    CONCATENATE函数

    moviepy音视频剪辑:使用concatenate_videoclips和clips_array

    本文将深入探讨如何使用moviepy的`concatenate_videoclips`和`clips_array`方法来实现多个视频的顺序播放和同屏播放。 首先,`concatenate_videoclips`是moviepy中的一个关键函数,用于将一系列VideoClip对象按照...

    前端开源库-concatenate-files

    "前端开源库-concatenate-files"就是一个专为此目的设计的工具。这个库可以帮助开发者高效地将JavaScript、CSS或其他文本文件合并在一起,减少HTTP请求的数量,从而提升网页的加载速度。 在现代Web开发中,文件合并...

    处理JS文件的插件concatenate.js.zip

    concatenate.js 提供了一个单一的模块来连接一系列的 JavaScript 文件,当在浏览器中执行时,让 JS 开发工具认为 JS 文件是单独的脚本标签。通俗点说,是将一系列的 JS 文件捆绑起来,并输出一个单一文件,同时保证...

    moviepy音视频开发:音频拼接函数concatenate_audioclips介绍.rar

    在这个主题中,我们主要关注的是如何使用MoviePy中的`concatenate_audioclips`函数来实现音频的拼接操作。这个功能对于制作音乐混剪、语音合辑或者任何需要将多个音频片段合并成一个完整文件的场景都至关重要。 ...

    concatenate函数的用法.xlsx

    concatenate函数的用法

    Keras Multiple Inputs and Mixed Data.zip

    在`Keras Multiple Inputs and Mixed Data.zip`的压缩包中,可能包含了上述所有步骤的Python脚本、数据集文件以及预训练模型(如果有的话)。这些文件可能用于演示如何从头开始实现这个多输入模型,或者如何加载已...

    numpy concatenate数组拼接方法示例介绍

    ### numpy concatenate 数组拼接方法详解 在Python的科学计算领域中,`numpy`库扮演着极其重要的角色,尤其在处理多维数组方面表现卓越。本文将深入探讨`numpy`中的数组拼接方法之一——`numpy.concatenate`,并...

    关于OpenCV的图像矩阵拼接(Python版本)及numpy.concatenate函数介绍

    功能:给定任意大小的两个图片(矩阵),水平连接成一个图片(矩阵)。高度不同时,使用黑色作为高度较小者的边缘填充,图片垂直居中。 import cv2 import numpy as np def image_join(image1, image2): ...

    Python数组拼接np.concatenate实现过程

    ### Python 数组拼接 np.concatenate 实现过程 在Python中,进行数组拼接操作时,主要依赖于NumPy库中的`np.concatenate`函数。本文将详细介绍`np.concatenate`的使用方法,并通过具体示例帮助读者更好地理解和应用...

    Concatenate the points of two Point Clouds

    In this tutorial we will learn how to concatenate the points of two different point clouds. The constraint imposed here is that the type and number of fields in the two datasets have to be equal. We ...

    Shuffle a vector for multiple times and concatenate them: Shuffle a vector for multiple times and concatenate them-matlab开发

    在MATLAB编程环境中,`shuffleVector` 函数是一种自定义实现,用于对向量进行多次随机排列并连接结果。这个功能在数据处理、模拟实验或算法测试等场景中可能非常有用,因为它允许开发者生成多种随机排列的数据组合。...

    concat::cat_face:连接文件

    康卡特 串联多个文件用法Usage: concat [options]concatenate multiple filesOptions: -h, --help output usage information -V, --version output the version number -o, --output < file> output file 例子: ...

    conv2047:RFC 2047 Unicode 电子邮件标头字段转换器

    conv2047 一个非常简单的 RFC 2047 Unicode 电子邮件标头字段转换器。 它基于 Encode Perl 模块。 Usage: conv2047.pl [-c] -d conv2047.pl -e ... -c concatenate multiple output lines into 1

    pointcloud_concatenate:用于组合PointCloud2数据的ROS包

    连接/合并点云并输出单个连接的点云pointcloud_concatenate 该软件包提供了一个节点,可用于将多个点云连接为一个节点。 一次最多可以连接4个点云。 如果需要连接更多的点云,则可以将此节点的输出链接到另一个point...

    concatenate_video.py

    利用opencv拼接视频,给定输入视频和输出视频位置即可。

    SQL语句经典教程

    SELECT CONCATENATE(column_name1, column_name2), SUBSTRING(column_name FROM start FOR length), TRIM(column_name) FROM table_name; ``` #### 数据定义语言:CREATE TABLE、CREATE VIEW、CREATE INDEX、...

    string-concatenate-outofmemory.rar_crash

    "string-concatenate-outofmemory.rar_crash" 这个标题暗示了一个与字符串连接(concatenation)有关的问题,可能在特定条件下导致程序崩溃。描述中提到的测试目标是检查连续的字符串拼接是否会抛出异常,而不是直接...

    concatenate_clouds.zip_PCD_clouds_pcd 合并

    首先,我们需要了解`concatenate_clouds.cpp`这个文件,它是实现PCD文件合并的源代码。在这个程序中,一般会使用PCL(Point Cloud Library)库,这是一个强大的开源库,专门用于处理3D点云数据。PCL提供了丰富的API...

Global site tag (gtag.js) - Google Analytics