相关疑难解决方法(0)

如何将多行中的文本连接成SQL Server中的单个文本字符串?

考虑一个包含三个行的名称的数据库表:

Peter
Paul
Mary
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以将其转换为单个字符串Peter, Paul, Mary

sql sql-server csv string-concatenation group-concat

1813
推荐指数
33
解决办法
222万
查看次数

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万
查看次数

从同一列聚合多个值作为连接字符串(10g)

我有一个很长的查询,跨多个表,我将四个值连接为所有者(名字,中间名和姓氏+组织).所有其他列都是相同的,但有多个所有者,因此,我想聚合多行.

我所看到的是(配对)

#     Owner
1     Sam Smith, AAA
2     Stan Bird, BBB
2     Nancy Bird, BBB
3     Mike Owen, CCC
Run Code Online (Sandbox Code Playgroud)

我想看到的是

#     Owner
1     Sam Smith, AAA
2     Stan Bird, Nancy Bird, BBB
3     Mike Owen, CCC
Run Code Online (Sandbox Code Playgroud)

注意事项:

  • 我无法创建功能(缺少权限)
  • 使用Oracle 10g
  • 我试过CASE(COLLECT...但这会杀死我的联系:

    错误 - "无法从套接字读取更多数据"

    SysAdmin,不知道为什么

  • WM_CONCAT只是重复一个所有者(有时是20次)并且没有给出所需的结果.

我尝试过其他一些事情,没有运气.我当前的查询产生了所需的行数,但只是砍掉了第二个所有者.

我不确定在这里发布整个查询是否明智.请告诉我这是否有帮助.


更新2012-01-29

wm_concat之前我使用不正确,但是当我使用它时,我收到此错误:

 ORA-06502: PL/SQL: numeric or value error: character string buffer too
 small ORA-06512: at "WMSYS.WM_CONCAT_IMPL", line 30
 06502. 00000 -  "PL/SQL: numeric or value error%s"
 *Cause:    
 *Action: …
Run Code Online (Sandbox Code Playgroud)

sql aggregate oracle10g

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