`
漂流瓶子blog
  • 浏览: 18958 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

SUMC 函数

阅读更多
SUMC使用场景:如查询同名身份证号有哪些,假设两张表:PUB_USER(用户表)PUB_CARD(身份信息表),这样同名张三的有两人结果就是一条记录:(张三ID1,张三ID2)  张三
SELECT SUMC(C.CARD_ID),U.USER_NAME
FROM PUB_USER U,PUB_CARD C
WHERE U.USER_ID = C.USER_ID
GROUP BY U.USER_NAME

--创建一个类型TypeSumVarchar
create or replace type TypeSumVarchar as object
(
  sum VARCHAR2(4000),
  static function ODCIAggregateInitialize(sctx IN OUT TypeSumVarchar)
    return number,
  member function ODCIAggregateIterate(self IN OUT TypeSumVarchar,
    value IN varchar2) return number,
  member function ODCIAggregateTerminate(self IN TypeSumVarchar,
    returnValue OUT VARCHAR2, flags IN number) return number,
  member function ODCIAggregateMerge(self IN OUT TypeSumVarchar,
    ctx2 IN TypeSumVarchar) return number
);
/

--创建类型的实体
CREATE OR REPLACE TYPE BODY TypeSumVarchar is
static function ODCIAggregateInitialize(sctx IN OUT TypeSumVarchar)
return number is
begin
  sctx := TypeSumVarchar('');
  return ODCIConst.Success;
end;

member function ODCIAggregateIterate(self IN OUT TypeSumVarchar, value IN VARCHAR2)
return number is
begin
  self.sum:=SUBSTRB(self.sum||','||value,0,4000);  --此处是函数的实现部分;当长度超过4000将被截取
  return ODCIConst.Success;
end;

member function ODCIAggregateTerminate(self IN TypeSumVarchar, returnValue OUT
VARCHAR2, flags IN number) return number is
begin
  returnValue := substr(self.sum,2);  --返回值去掉最左部的连接字符','
  return ODCIConst.Success;
end;

member function ODCIAggregateMerge(self IN OUT TypeSumVarchar, ctx2 IN
TypeSumVarchar) return number is
begin
  return ODCIConst.Success;
end;
end;
/

--创建自定义聚集函数SUMC

CREATE OR REPLACE FUNCTION SUMC (input VARCHAR2) RETURN VARCHAR2
PARALLEL_ENABLE AGGREGATE USING TypeSumVarchar;
/
分享到:
评论

相关推荐

    leetcode2sumc-leetcode:leetcode

    在给定的压缩包文件"leetcode2sumc-leetcode:leetcode"中,我们可以推测这是一个与LeetCode相关的项目,其中包含了使用C语言实现的算法解决方案。LeetCode是一个在线平台,提供了各种编程挑战,尤其是针对算法和数据...

    leetcode2sumc-LeetCode:力扣的学习

    在C语言中实现这些算法,意味着用户需要熟悉C语言的内存管理、指针操作以及函数调用等特性。C语言是一种底层语言,它允许程序员直接操作内存,这在实现某些高效算法时非常有用,但同时也增加了出错的可能性。 在...

    leetcode2sumc-Leetcode:力码

    递归函数:找到一个中值并用它的左子树和右子树调用函数本身 中等的 [Java] 方法1)以右-左-父顺序读取树方法2)莫里斯遍历 简单的 埃拉托色尼筛(素数表) 运行时间:O(n log log n) 中等的 使用两个 for 循环(或 ...

    leetcode2sumc-MyLeetCode:力扣答案

    【标题】"leetcode2sumc-MyLeetCode:力扣答案" 涉及的是一个与编程挑战平台LeetCode相关的项目。LeetCode是一个在线平台,它提供了大量的算法和编程题目,帮助开发者提升技能并准备技术面试。这个项目的重点可能是...

    四川省计算机一级第六章EXCEL电子表格题库.pdf

    - “SUM”函数与“AVERAGE”函数的应用,如“=SUMC2C6”和“AVERAGEA1..A10”表明文档可能在讲授如何在Excel中使用求和和平均数的函数来处理数据。 4. Excel中的工作表命名与切换: - 提到了"SHEET1", "SHEET2", ...

    leetcode2sumc-LeetCode:力码

    首先,我想到了一个想法,我可以使用排序函数并找到值的索引等于目标的一半,然后我可以轻松获取索引。但是我犯了一个错误,我需要的是排序前的索引。所以我不得不更新一个向量来花费更多的时间。 最简单的解决方案...

    leetcode2sumc-AlgorithmTask:算法任务

    标题 "leetcode2sumc-AlgorithmTask:算法任务" 指向的是一个关于LeetCode算法问题的项目,其中“2sum”是LeetCode中的经典题目,通常涉及到数组和哈希表的基本操作。在这个项目中,可能包含了解决该问题的不同算法...

    leetcode2sumc-leetcode:leetcode问题

    leetcode 2 sum c leetcode source code of leetcode problems ...2.负数的取余动作存在堆内存溢出的可能,使用取绝对值方式避免 3.使用-fsanitize=address编译参数检测堆内存是否有溢出 ...2.传入函数的&

    leetcode2sumc-Leetcode-Solution:leetcode的解决方案

    本项目“leetcode2sumc-LeetCode-Solution”主要针对LeetCode中的经典问题“两数之和”提供了C语言的解决方案,旨在帮助程序员深入理解和掌握这一问题的解决思路。 “两数之和”问题是一个基础的数组和哈希表应用题...

    leetcode2sumc-NaughtyBear_notes:NaughtyBear笔记+搬运+总结

    leetcode 2 sum c NaughtyBearNotes NaughtyBear 笔记 搬运+总结 :open_book: Github ...技术方向校招求职者、初学者的基础知识总结,包括语言、程序库、数据结构、...修饰成员函数,说明该成员函数内不能修改成员变量。

    leetcode2sumc-Interview::books:C/C++面试基础知识总结

    leetcode 2 sum c :blue_book: Summary    |    :light_bulb: ...方向校招求职者、初学者的基础知识总结,包括语言...修饰成员函数,说明该成员函数内不能修改成员变量。 使用 const 使用 // 类 class A { private: co

    224860116张泽豪.docx

    - `suma`, `sumb`, `sumc` 分别用于存储所有学生在语文、数学、英语上的总分。 - `sum` 存储所有学生的总成绩之和。 - `count` 记录学生人数。 - 静态成员变量是属于类的,而不是属于类的某个特定实例,它们可以...

    leetcode2sumc-leetcode:只是一个空间来记录我的leetcode解决方案

    在本项目中,标题"leetcode2sumc-leetcode:只是一个空间来记录我的leetcode解决方案"表明这是一个个人用于存储和管理其在LeetCode平台上解决算法问题的代码仓库。LeetCode是一个在线平台,提供各种算法题目,旨在...

    leetcode2sumc-CSharp-100DaysOfCode:CSharp-100DaysOfCode

    编写一个函数来确定 t 是否是 s 的字谜 话题 种类 技能 一步步 代码 public class Solution { public bool IsAnagram(string s, string t) { if (s.Length != t.Length) return false; char[] source = s....

    leetcode2sumc-Coding:Java语言|《剑指offer》与leetcode|AC万万岁!

    leetcode 2 sum c 此仓库有四个部分: 《剑指offer》java代码实现,一本关于面试算法题经典的书。 《玩转算法面试》,慕课课程,对leetcode的题目分门别类进行讲解,讲的很好,力荐。 排序算法,快排,归并排序,堆...

    Excel教学设计(全).pdf

    3. 公式和函数:文件中的“=SUMC3:F3”、“=AVERAGE”、“=COUNT”、“=MAX”、“=MIN”等是Excel中的函数。这些函数可以帮助用户对数据进行求和、平均值、计数、最大值、最小值等计算。 4. 公式输入:例如“G3=C3+...

    leetcode2sumc-leetcode:Python和C中的算法解决方案

    指针/字符串函数 , 2 指针 , 哈希表/滑动窗口 , 哈希表/滑动窗口 链表 问题 解决方案 标签 , , 快/慢指针 , 2 指针 , 反向子列表 堆栈/队列 问题 解决方案 标签 , 堆 二分查找 问题 解决方案 标签 , , , 哈希表/排序...

Global site tag (gtag.js) - Google Analytics