现在假设有下面的检索结果输出:
------------------------------
列名: 姓名
------------------------------
第一行: 张三
第二行: 李四
第三行: 王五
... ...
------------------------------
由于业务上面的需要,要求将这三行结果将“姓名”字段合并到一行显示,显示出来的结果应如下面:
张三,李四,王五,...以往的做法我都是在返回到业务逻辑层的数据集中进行处理,但是我想有没有办法直接在SQL脚本中实现这个功能,希望大家能
告诉我好的解决方案,谢谢
------------------------------
列名: 姓名
------------------------------
第一行: 张三
第二行: 李四
第三行: 王五
... ...
------------------------------
由于业务上面的需要,要求将这三行结果将“姓名”字段合并到一行显示,显示出来的结果应如下面:
张三,李四,王五,...以往的做法我都是在返回到业务逻辑层的数据集中进行处理,但是我想有没有办法直接在SQL脚本中实现这个功能,希望大家能
告诉我好的解决方案,谢谢
我参照别人的写的,你可以修改下再用create or replace function LinkAll(sCol varchar2, sTable varchar2,sWhere varchar2,sType varchar2)
return varchar2
is
str varchar2(500);
-- sCol varchar2(100); --连接的字段
-- sTable varchar2(50); --查询的表
-- sWhere varchar2(200);--查询的条件
-- sType varchar2(10); --连接时的分割符
sReturn varchar2(50);
UnionReturn varchar2(2000);
type cursor_type is ref cursor;
c1 cursor_type;
begin
str:='select '||sCol||' from '||sTable||' where 1=1 '||sWhere;
open c1 for str;
loop
fetch c1 into sReturn;
exit when c1%notfound;
UnionReturn:=UnionReturn||sType||sReturn;
end loop;
UnionReturn:=ltrim(UnionReturn,sType);
return UnionReturn;
end ;