189 8069 5689

oracle集合如何取值,oracle 集合操作

oracle 集合使用

给你个范例:

目前创新互联已为超过千家的企业提供了网站建设、域名、雅安服务器托管网站托管、企业网站设计、长汀网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

CREATE OR REPLACE FUNCTION f_jax_str2tab(p_str IN VARCHAR2,

p_sep varchar2 default ','

) RETURN type_jax_varc2tab IS

/******************************************************************

Ver1.0 Created by jaxzhang on 2009-06-08

把字符串(1*2*3*4*5)转换为内存表形式

create or replace type type_jax_varc2tab is table of varchar2(2000);

测试用例:SELECT * FROM TABLE(f_jax_str2tab('1*2*3*4*5','*'));

******************************************************************/

v_str varchar2(2000);

v_cnt NUMBER ;

v_numtab type_jax_varc2tab := type_jax_varc2tab(); --返回内存表

BEGIN

select decode(substr(p_str,-1),p_sep,p_str,p_str || p_sep) into v_str from dual;

select length(v_str) - length(REPLACE(v_str, p_sep)) into v_cnt from dual;

FOR i IN 1 .. v_cnt LOOP

v_numtab.EXTEND;

v_numtab(i) := substr(v_str, 1, instr(v_str, p_sep) - 1);

v_str := substr(v_str, instr(v_str,p_sep) + 1);

END LOOP;

RETURN v_numtab;

EXCEPTION

WHEN OTHERS THEN

v_numtab.DELETE;

END;

oracle 中怎么算sum分组取值/汇总值啊?一直没有头绪

oracle中sum分组取值/汇总值用如下方法。

如emp表中有如下数据:

现要按deptno分组,求每组中sal的值/汇总值,可用如下语句:

select deptno,sum(sal)/(select sum(sal) from emp) from emp group by deptno;

查询结果:

oracle 某个字段的结果是一个集合,怎么知道这个结果中是否有某个值

PL/SQL中是没有数组的概念,他的集合数据类型和数组是相似的,所以可以用ARRAY来解决问题。

第一步:创建你所需的ARRAY类型

Create Type varray_answer as varray(10) of varchar2(50);

第二步:把你的sf_split_string

函数返回的类型设置为varray_answer

第三步:

select era_id, us_id, sf_split_string(answer, ':') as listanswer, tu.name

from evt_result_answer, tuser tu

where e_id = 37200

and ques_id = 94603

and tu.id = evt_result_answer.us_id

/**判断是否含有某个值*/

and listanswer.EXISTS('2');

集合方法

pl/sql预定义了在varray 和嵌套表实例上进行调用的方法。这些方法能在集合上执行一定的功能。

EXISTS

 

该函数返回集合中第一个元素的索引,如果集合为空,返回NULL

 

Collection.EXISTS(index)

COUNT

 

该函数集合元素的数目

 

Collection.COUNT

DELETE

 

该过程从嵌套表中删除一个或多个或合部元素

 

Table_name.DELETE 删除所有元素

Table_name.delete(index)删除指定索引的记录

Table_name.delete(start_index,end_index)删除区间内元素

等方法


当前题目:oracle集合如何取值,oracle 集合操作
文章起源:http://jkwzsj.com/article/hsiehs.html

其他资讯