select s.id, s.start_y , s.start_m, s.end_y, s.end_m, d.dept_name
from T_HZOA_APP_KQSZ s, T_HZDRP_SYS_DEPT d
where s.organid like '%' || d.id || '%'
查询出来N条数据,其中一个字段不同,别的都相同。
我想得到一条结果,把不同的以“,”或者“;”分隔,都放到一个字段里。
这样改怎么改SQL呢?
from T_HZOA_APP_KQSZ s, T_HZDRP_SYS_DEPT d
where s.organid like '%' || d.id || '%'
查询出来N条数据,其中一个字段不同,别的都相同。
我想得到一条结果,把不同的以“,”或者“;”分隔,都放到一个字段里。
这样改怎么改SQL呢?
from T_HZOA_APP_KQSZ s, T_HZDRP_SYS_DEPT d
where s.organid like '%' || d.id || '%'
group by s.id, s.start_y , s.start_m, s.end_y, s.end_m
把结果集建个视图
在写个函数 loop在拼接起来
肯定的啊,Oracle的东西,其它数据库不一定支持,呵呵,
不过,用函数应该就可以通用了吧,自己创建一个my_concat函数,原理很简单
--可以通过函数去实现
create or replace function my_concat(P_ID in varchar2)
return varchar2
is
result varchar2(4000);
begin
for rs in (select NAME from T_HZDRP_SYS_DEPT where ID=P_ID) loop
result :=result || rs.NAME || ',';
end loop;
result := rtrim(result,','); --去掉最后一个逗号
return result;
end;select s.id, s.start_y , s.start_m, s.end_y, s.end_m, MY_CONCAT(d.dept_name) dept_name
from T_HZOA_APP_KQSZ s, T_HZDRP_SYS_DEPT d
where s.organid like '%' || d.id || '%'