日期:2014-05-17  浏览次数:20841 次

wm_concat函数使用中的rownum问题,请教一个写法
现有一个表t1(id,f1,f2): id是身份证号; f1,f2是两个标识位,值只能是0或1,且二者的值互补干涉.
要做两件事情:(1)查找f1为1的记录,将其id拼接为一个字符串(2)查找f2为1的记录,将其拼接成字符串.
现在想用wm_concat函数来处理,但考虑到该函数只能处理4000个字符,要对rownum进行限制,
我想到一个办法是分开处理,对该表查询两次,把结果拼在一起,但总觉得这样进行两次表的查询效率不高,求一个只进行一次表访问的写法
这里只是一个例子,我工作实际要处理的标志位很多,每一个都要找出来拼接id,求好办法.
oracle sql wm_concat

------解决方案--------------------
引用:
Quote: 引用:

 可以看看如下帖子#2的解决方法
http://bbs.csdn.net/topics/390643026

谢谢,很有帮助.不过现在我把结果放clob里,这样wm_concat函数就不能用了,还有什么办法来拼接字符串呢,我想到用游标循环,不知道效率怎样,还有别的方法吗

我说的是#2啊,那个是我当时帮别人写的,不是用的WM_CONCAT函数啊,我是通过递归查询来做的,你再看看??