postgresql 函数

来源:互联网 发布:c语言 void关键字 编辑:程序博客网 时间:2024/06/13 03:41
我用select dictinct insertdate from table1,得到如下表200805200806200807200808200809200810200811现在我需要将得到的这个表的这一列拼接成一个字符串,即200805,200806,200807,200808,200809,200810,200811请问这个应该如何实现?
 
select GROUP_CONCAT(dictinct insertdate) from table1;
 
or
 
查询出来一般是数组我就以2唯为例   逻辑一样foreach($result(数组) as $v){$k.=$v["insertdate "].",";}其实就是一个追加 
-----------------------------------------------------------------

行转列

简单示例:
返回游标
CREATE FUNCTION reffunc2() RETURNS refcursor AS '
declare
  sql text;
  myrec record;
  ref refcursor
begin
  sql:='select 姓名 ';
  for myrec in select distinct 课程 from tb loop
  sql:=sql||$$ , max(case 课程 when '$$||myrec.课程||$$' then 分数 else 0 end) as $$||myrec.课程||;
  end loop
  sql:=sql||' , cast(avg(分数*1.0) as decimal(18,2)) 平均分 , sum(分数) 总分 from tb group by 姓名'
  open refr for execute sql;
  return ref;
end;

BEGIN;
SELECT reffunc2();

reffunc2
--------------------
<unnamed cursor 1>
(1 row)

FETCH ALL IN "<unnamed cursor 1>";
COMMIT;

-----------------------------------------------------------------
有表XWCMDOCTAG通过SELECT TAGNAME  FROM XWCMDOCTAG where DOCID = 1 and TAGGINGNUM > 0语句查出如下结果集TAGNAME-----------中国美国英国韩国请问怎么把这一列的值用SQL 拼接成如下格式"中国;美国;英国;韩国"
 
 
用db2的xml函数,只适用于udb版本。SELECT replace(replace(xml2clob(xmlagg(xmlelement(NAME a, tagname||';'))),'<A>',''),'</A>',' ') FROM country
 
 

 

原创粉丝点击