您的位置:首页 > 数据库

用到的与sql相关的总结

2013-08-12 16:08 204 查看
1、Oracle行转列函数Listagg()

说明:
用法就像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来,非常方便。

如:查询的结果是

1

2

3

需要显示为1,2,3在一列中显示并且用分隔符隔开。

基础的用法:LISTAGG('需要转换的数据','分隔符') WITHIN GROUP( ORDER BY '')

例子:select Listagg(t.name,'|')within GROUP(order by t.name) from table t

2、包含和不包含关键字:exists 和 not exists

3、去掉重复数据关键字:distinct

4、union、union all

5、sql中三个连接关键字:内链接:inner join ;左链接:left join;右链接:right join

6、分组查询关键字:GROUP BY

语法:

select id,name,count(1) from (

select name from table

)GROUP BY id,name;

上面sql是根据id和name进行分组查询。

查询结果:

id name count

1 zhangsan 5

2 lisi 10

7、条件判断语法:

select

(case

when t.type = 1 then

'专题'

when t.type = 2 then

'磨课'

end) as "studyType" from table t

9、创建存储过程相关信息:

--创建存储过程开始(名称为P_IDX_WORKLOAD)

create or replace procedure P_IDX_WORKLOAD (

VS_USER_ID IN VARCHAR2,--输入参数

VI_RTNVALUE IN OUT INTEGER,--输出参数int类型

VS_RTNMSG IN OUT VARCHAR2--输出参数String类型

)

IS

BEGIN

BEGIN --异常捕获开始

DELETE FROM TBL_IDX_WORKLOAD_2_4_HIS WHERE USER_ID=VS_USER_ID; --要写的sql逻辑

EXCEPTION --异常捕获

When others THEN --异常捕获

DBMS_OUTPUT.put_line('sqlcode : ' ||sqlcode);

DBMS_OUTPUT.put_line('sqlerrm : ' ||sqlerrm);

VI_RTNVALUE:=-10; --给输出参数赋值

VS_RTNMSG:='统计失败!'; --给输出参数赋值

ROLLBACK;

RETURN;

END ;--异常捕获结束

COMMIT;--提交

VI_RTNVALUE:=1;--给输出参数赋值

VS_RTNMSG:='统计成功!';--给输出参数赋值

end P_IDX_WORKLOAD;--创建存储过程结束
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: