WEB开发网
开发学院数据库Oracle Oracle多行记录字符串综合操作几种方法 阅读

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

 2007-06-21 12:33:06 来源:WEB开发网   
核心提示: 大家一看,估计就明白了(如果不明白,Oracle多行记录字符串综合操作几种方法(2),好好补习MAX DECODE和分组),这种方法无愧为最笨的方法,根据唯一的分组字段country,在函数里面再次查询该字段对应的所有被合并列,但是对某些应用来说,最有效的方法也许就是它

大家一看,估计就明白了(如果不明白,好好补习MAX DECODE和分组)。这种方法无愧为最笨的方法,但是对某些应用来说,最有效的方法也许就是它。

2.固定表固定字段函数法:

灵活性★★ 性能★★★★ 难度 ★★

此法必须预先知道是哪个表,也就是说一个表就得写一个函数,不过方法1的一个取值就要便捷多了。在大多数应用中,也不会存在大量这种合并字符串的需求。废话完毕,看下面:

定义一个函数:

create or replace function str_list( str_in in varchar2 )
--分类字段
return varchar2 is
str_list varchar2(4000) default null;
--连接后字符串
str varchar2(20) default null;
--连接符号
begin
for x in ( select TEST.CITY from TEST
where TEST.COUNTRY = str_in ) loop
str_list := str_list || str || to_char(x.city);
str := ', ';
end loop;
return str_list;
end;

使用:

SQL> select DISTINCT(T.country),
list_func1(t.country) from test t;
COUNTRY       LIST_FUNC1(T.COUNTRY)
-------------------- ----------------
中国         台北, 香港, 上海
日本         东京, 大阪
SQL> select t.country,str_list(t.country)
from test t GROUP BY t.country;
COUNTRY       STR_LIST(T.COUNTRY)
-------------------- -----------------------
中国         台北, 香港, 上海
日本         东京, 大阪

这个时候,使用分组和求唯一都可以满足要求。它的原理就是,根据唯一的分组字段country,在函数里面再次查询该字段对应的所有被合并列,使用PL/SQL将其合并输出。

上一页  1 2 3 4 5  下一页

Tags:Oracle 多行 记录

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接