zoukankan      html  css  js  c++  java
  • oracle中自定义聚合函数及用法

    也是比较老套的话题了 呵呵
    表A                           表B
    p_id     p_name              r_id   r_name  r_p_id
    1001    测试项目1            100   中标单位1  1001
    1002    测试项目2            101   中标单位2  1001
                                        103   中标单位3   1001
                                        103   中标单位1   1002
                                        103   中标单位2   1002
    有时候我们需要得到类似下面的列表
    1001 测试项目1   中标单位1/中标单位2/中标单位3 
    1001 测试项目2   中标单位1/中标单位2
    先创建一个函数
       CREATE OR REPLACE FUNCTION  STRCAT ( str_in in varchar2 )--分类字段
       return varchar2
    is
          str_list  varchar2(4000) default null;--连接后字符串
          str  varchar2(20) default null;--连接符号
    begin
          for x in ( select r_name   from B where r_p_id= str_in ) loop
              str_list := str_list || str || to_char(x.r_name);
              str := '/';
          end loop;
          return str_list;
    end;


    下面取列表
    select p_id,p_name ,STRCAT(p_id) as hitBiders from A
    也可以 select p_id,p_name ,(select STRCAT(p_id)  from dual) as hitBiders from A
    当然建议用第一个语句
    若是在SQL SERVER里可以象下面这样写
    create   function   dbo.str_cat(@id   int)
    returns   varchar(3000)
    as
    begin
        declare   @s   varchar(8000)
        select   @s   =   ' '
        select   @s   =   @s   +   r_name   +   '/ '     from   b   where   r_p_id   =   @id
        return   left(@s,len(@s)-1)    
    end
    或者
    create   function   dbo.str_cat(@id  int)
        returns   varchar(3000)
    as  
        begin
              declare   @sql   varchar(8000)
              set   @sql= ' '
              select   @sql=@sql+ '/ '+ r_name  from   b   where   r_p_id =@id
              return   stuff(@sql,1,1, ' ')
        end
    go







  • 相关阅读:
    20145223《Java程序程序设计》课程总结
    20145223《Java程序程序设计》第10周学习总结
    20145223《Java程序程序设计》实验报告5
    20145223《Java程序程序设计》第9周学习总结
    20145223 《Java程序程序设计》实验报告4
    20145223《Java程序程序设计》第8周学习总结
    20145223《Java程序设计》实验报告3
    20145223《Java程序程序设计》第7周学习总结
    20145223《Java程序程序设计》实验报告二
    node_promise
  • 原文地址:https://www.cnblogs.com/peaceli/p/1060814.html
Copyright © 2011-2022 走看看