相关疑难解决方法(0)

SQL Query用于连接Oracle中多行的列值

是否可以构造SQL来连接多行的列值?

以下是一个例子:

表A.

PID
A
B
C

表B.

PID   SEQ    Desc

A     1      Have
A     2      a nice
A     3      day.
B     1      Nice Work.
C     1      Yes
C     2      we can 
C     3      do 
C     4      this work!

SQL的输出应该是 -

PID   Desc
A     Have a nice day.
B     Nice Work.
C     Yes we can do this work!

所以输出表的Desc列基本上是表B的SEQ值的串联?

有没有SQL的帮助?

sql oracle string-aggregation

149
推荐指数
7
解决办法
34万
查看次数

如何将多行组合到SQL Server 2005中以逗号分隔的列表中?

现在,我有一个像这样的SQL查询:

SELECT X, Y FROM POINTS
Run Code Online (Sandbox Code Playgroud)

它返回结果如下:

X    Y
----------
12   3
15   2
18   12
20   29
Run Code Online (Sandbox Code Playgroud)

我想在一行中返回结果,如下所示(适合在HTML <AREA>标记中使用):

XYLIST
----------
12,3,15,2,18,12,20,29
Run Code Online (Sandbox Code Playgroud)

有没有办法只使用SQL?

sql sql-server function list concatenation

46
推荐指数
4
解决办法
7万
查看次数

SQL - 使用GROUP BY时以逗号分隔的多个值

我的数据看起来像

CUSTOMER,  CUSTOMER_ID, PRODUCT
ABC INC    1            XYX
ABC INC    1            ZZZ
DEF CO     2            XYX
DEF CO     2            ZZZ
DEF CO     2            WWW
GHI LLC    3            ZYX
Run Code Online (Sandbox Code Playgroud)

我想写一个查询,使数据看起来像这样:

CUSTOMER, CUSTOMER_ID, PRODUCTS
ABC INC   1            XYX, ZZZ
DEF CO    2            XYX, ZZZ, WWW
GHI LLC   3            ZYX
Run Code Online (Sandbox Code Playgroud)

如果有帮助,请使用Oracle 10g.我看到了一些可以使用MYSQL工作的东西,但我需要一个简单的SQL或ORACLE等价物.我也看过可以制作的存储过程的例子,但是,我不能使用我正在使用的产品的存储过程.

如果我使用它,它在MySQL中是如何工作的

SELECT CUSTOMER, 
       CUSTOMER_ID, 
       GROUP_CONCAT( PRODUCT ) 
FROM MAGIC_TABLE 
GROUP BY CUSTOMER, CUSTOMER_ID
Run Code Online (Sandbox Code Playgroud)

谢谢.

sql oracle oracle10g

10
推荐指数
2
解决办法
3万
查看次数

Oracle:将子查询中的多个结果合并为一个以逗号分隔的值

我正在尝试将单列VARCHAR圆形查询转换为命令分隔的值列表.

这与此问题完全相同,但对于Oracle而不是SQL Server或MySQL.

sql oracle subquery string-aggregation

9
推荐指数
2
解决办法
3万
查看次数

相当于Oracle 9i中的PostgreSQL array()/ array_to_string()函数

我希望从Oracle中返回多行的查询返回带有逗号分隔值的单行,基本上将返回的行展平为单行.

在PostgreSQL中,这可以使用数组和array_to_string函数来实现,如下所示:

鉴于表"人":

id | name
---------
1  | bob
2  | alice
3  | jon
Run Code Online (Sandbox Code Playgroud)

SQL:

select array_to_string(array(select name from people), ',') as names;
Run Code Online (Sandbox Code Playgroud)

将返回:

names
-------------
bob,alice,jon
Run Code Online (Sandbox Code Playgroud)

如何在Oracle 9i中实现相同的结果?

谢谢,

马特

arrays oracle postgresql

8
推荐指数
1
解决办法
2万
查看次数

在Oracle中将SQL行转换为逗号分隔值

可能重复:
如何将多行组合到Oracle中以逗号分隔的列表中?

如何在不创建函数的情况下从SQL中的返回行列表生成逗号分隔值?需要删除重复项并使用null或使用"无"作为值.

例: select name from student;

结果 :

         NAME         
        ------
        Zed
        Charlo
        None
        Charlo
        Dionn
        Ansay
Run Code Online (Sandbox Code Playgroud)

期望的输出:

              Name
             -------
             Zed,Charlo,Dionn,Ansay
Run Code Online (Sandbox Code Playgroud)

sql oracle

8
推荐指数
1
解决办法
3万
查看次数

SQL Select; 连接字符串,避免列为空的双逗号?

我有以下参考数据.

PERSON_NAME                    STREET                   TOWN             COUNTY           POSTCODE   
------------------------------ ------------------------ ---------------- ---------------- ---------- 
David Smith                    30 Johnson Street        Norwich          Norfolk          NA38 3KL   
John Brown                     Douglas Road             Cambridge                         C8  9IJ    
Jackie White                   8 High Street            Ipswich          Suffolk          IP7  2YT   
Andrea Blue                    9 Marlborough Ave        Bury             Suffolk          IP4  0XC   
Jemima Green                   Riverside Walk           Colchester       Essex            CO6  7PR   
James Gray                     167 Hadleigh Place       London                            SW1 4TU  
Run Code Online (Sandbox Code Playgroud)

我想要做的是显示一个人名列表,以及他们的地址连接成一个逗号分隔的字符串.

这部分很简单,我用了||连接列并放置逗号分隔符.

我正在质疑的部分是,有些行没有列出任何内容COUNTY,因此我需要避免显示, ,.

我已经为自己做了一些研究,并决定使用Oracle中的SUBSTR替换双逗号,但它确实感觉有点"脏".是否有更简洁的方法来避免使用复杂的功能(例如之前的SO问题)?

这就是我所拥有的:

SELECT
    SUPPNAME as …
Run Code Online (Sandbox Code Playgroud)

sql oracle select

6
推荐指数
2
解决办法
7996
查看次数

Oracle用逗号连接列

可能重复:
如何将多行组合到Oracle中以逗号分隔的列表中?

有人可以告诉我如何实现以下目标吗?

表:

efforts_id        cycle_name      release_name 
123               quarter         march 
123               half            april 
123               full            april
124               quarter         may
Run Code Online (Sandbox Code Playgroud)

我的预期产量:

efforts_id        cycle_name            release_name 
123               quarter,half,full     march,april
124               quarter               may
Run Code Online (Sandbox Code Playgroud)

我是oracle的初学者所以不确定如何做到这一点.任何帮助,将不胜感激.

谢谢

sql database oracle concatenation string-aggregation

5
推荐指数
2
解决办法
8696
查看次数

由于Oracle中的select语句而以逗号分隔的列表

我有一张名为"人"的桌子.它包含person的id和它的父id(只有一个父级是可能的).作为查询的结果,我想要一个包含第一列的表 - 一个人ID,第二列 - 一个包含它的子ID的列表.怎么做到这一点?我已经阅读过listagg函数,但我不确定它是否适合我的目的.此查询生成一个空的第二列:

从人t1中选择t1.id,(从人t2中选择t2.id,其中t2.parent_id = t1.id),其中t1.status ='parent';

sql oracle subquery string-aggregation

4
推荐指数
1
解决办法
1万
查看次数

如何在Oracle regexp_replace中通过正则表达式从逗号分隔列表中删除重复项?

我有

'VA - HRD 1, VA - HRD 1, VA - NOVA 1, VA - NOVA 1'
Run Code Online (Sandbox Code Playgroud)

并希望得到

'VA - HRD 1, VA - NOVA 1'
Run Code Online (Sandbox Code Playgroud)

我在尝试

regexp_replace( 'VA - HRD 1, VA - HRD 1, VA - NOVA 1, VA - NOVA 1' ,'([^,]+)(,\1)+', '\1')
Run Code Online (Sandbox Code Playgroud)

但它不会删除所有重复项,它会产生: VA - HRD 1, VA - HRD 1, VA - NOVA 1

请帮忙...

regex oracle

4
推荐指数
1
解决办法
2万
查看次数

在Oracle SQL语句中构建以逗号分隔的值列表

我正在尝试从Oracle中的字段构建以逗号分隔的值列表.

我找到了一些示例代码:

DECLARE @List VARCHAR(5000)
SELECT @List = COALESCE(@List + ', ' + Display, Display)
FROM TestTable
Order By Display
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试时,我总是得到关于FROM关键字的错误,而不是它是预期的.我可以使用SELECT INTO并且它可以工作,但如果我有多行,我会得到提取错误.

为什么我不能这样做:

SELECT myVar = Field1
FROM myTable
Run Code Online (Sandbox Code Playgroud)

oracle select-into

1
推荐指数
1
解决办法
2万
查看次数

使用(Oracle)SQL对字符串中的分隔分隔值进行排序

说你有

select '9|2|6|7|5' as somedata from dual
Run Code Online (Sandbox Code Playgroud)

有没有办法,我可以做以下事情:

select
    in_string_sort('|', a.somedata)
from
    (select '9|2|6|7|5' as somedata from dual) a
Run Code Online (Sandbox Code Playgroud)

结果会是'2|5|6|7|9'什么?

我知道,我可以使用一个函数来实现它,但这是如此基本我想知道Oracle是否会为这类事情提供一些内置函数.

[编辑]忘记提及:这将在Oracle 10gR2中.

sorting string oracle plsql oracle10g

1
推荐指数
1
解决办法
6542
查看次数