相关疑难解决方法(0)

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

我有一个简单的查询:

select * from countries
Run Code Online (Sandbox Code Playgroud)

结果如下:

country_name
------------
Albania
Andorra
Antigua
.....
Run Code Online (Sandbox Code Playgroud)

我想在一行中返回结果,所以像这样:

Albania, Andorra, Antigua, ...
Run Code Online (Sandbox Code Playgroud)

当然,我可以编写一个PL/SQL函数来完成这项工作(我已经在Oracle 10g中完成了),但是对于这个任务是否有更好的,最好是非特定于Oracle的解决方案(或者可能是内置函数) ?

我通常会用它来避免子查询中的多行,所以如果一个人有一个以上的公民身份,我不希望她/他在列表中是重复的.

我的问题是基于SQL Server 2005上的类似问题.

更新:我的功能如下:

CREATE OR REPLACE FUNCTION APPEND_FIELD (sqlstr in varchar2, sep in varchar2 ) return varchar2 is
ret varchar2(4000) := '';
TYPE cur_typ IS REF CURSOR;
rec cur_typ;
field varchar2(4000);
begin
     OPEN rec FOR sqlstr;
     LOOP
         FETCH rec INTO field;
         EXIT WHEN rec%NOTFOUND;
         ret := ret || field || sep;
     END LOOP;
     if length(ret) …
Run Code Online (Sandbox Code Playgroud)

sql oracle pivot concatenation string-aggregation

101
推荐指数
5
解决办法
38万
查看次数

oracle中有没有类似于mysql中的group_concat的函数?

我的投入是这样的.

col1   col2
1      a
1      b
2      c
2      d
2      e
Run Code Online (Sandbox Code Playgroud)

O/p:应该是这样的

col1    col2
1       a,b
2       c,d,e
Run Code Online (Sandbox Code Playgroud)

我想要一个可以在DB级别触发的查询.我尝试了各种各样的方法,但未能做到这一点......

sql oracle

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

如何在Oracle中以A,B格式检索两列数据

我在oracle数据库中有两列

+---------+---------+
| Column1 | Column2 |
+---------+---------+
| A       | 1       |
| A       | 2       |
+---------+---------+
Run Code Online (Sandbox Code Playgroud)

我希望退出数据,就像我将获得数据一样

+---------+---------+
| Column1 | Column2 |
+---------+---------+  
| A       | 1,2     |
+---------+---------+
Run Code Online (Sandbox Code Playgroud)

请给我解决方案.

string oracle

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

标签 统计

oracle ×3

sql ×2

concatenation ×1

pivot ×1

string ×1

string-aggregation ×1