`

oracle控制语句学习二——case流程控制语句

阅读更多
declare
v_community_type_name communitytype.name%type;
begin
select c.name into v_community_type_name 
from communitytype c
where c.community_type_id = '&community_type_id';
case
when v_community_type_name = '电子图书'
then 
dbms_output.put_line('查询到电子图书');
when v_community_type_name = '新书快读'
then 
dbms_output.put_line('查询到新书快读');
else
dbms_output.put_line('查询到其他资源库');
end case;
end;

case when 也可用于查询语句
select 
case
when id is null and parent_id is null
then 'yzhnykxyjs'
when id is null and parent_id is not null
then parent_id
else id
end id,
case
when id is null and parent_id is null
then (select com.name from community com where com.community_id = 'yzhnykxyjs')
when id is null and parent_id is not null
then (select com.name from community com where com.community_id = parent_id)
else (select col.name from collection col where col.collection_id = id)
end name,
case
when id is null and parent_id is null
then '0'
when id is null and parent_id is not null
then 'yzhnykxyjs'
else parent_id
end parent_id,
case
when id is null and parent_id is null
then 'community'
when id is null and parent_id is not null
then 'zsk'
else 'collection'
end object_type,
count
from
(select cc.collection_id id,count(1) count,cc.community_id parent_id
from community com
join community2community c2c on c2c.community_id = com.community_id and c2c.parent_community_id = 'yzhnykxyjs'
join community2collection cc on cc.community_id = c2c.community_id
join collection col on col.collection_id = cc.collection_id and col.withdrawn = 'N'
join collection2item c2i on c2i.collection_id = col.collection_id
join item i on i.item_id = c2i.item_id and i.withdrawn = 'N'
where not exists (select 1 from community2institution c2i where c2i.community_id = com.community_id)
and com.withdrawn = 'N'
group by rollup(cc.community_id,cc.collection_id)) allcom

输出如下:

    1 qt_2934 参加会议情况 qt collection 3
    2 qt_2935 实验室活动记事 qt collection 2
    3 qt_2936 无法归类却有必要保存 qt collection 3
    4 qt 其它 yzhnykxyjs zsk 8
    5 cgk_2529 发明专利 cgk collection 27
    6 cgk_2530 科技成果 cgk collection 23
    7 cgk_2727 图书著作 cgk collection 10
    8 cgk_3328 品种库 cgk collection 5
    9 cgk 成果库 yzhnykxyjs zsk 65
    10 xmk_2729 项目经费 xmk collection 1
    11 xmk_2730 在研项目 xmk collection 5
    12 xmk_2926 完成项目 xmk collection 17
    13 xmk 项目库 yzhnykxyjs zsk 23
    14 jxgz_2531 教学课件 jxgz collection 1
    15 jxgz 教学工作 yzhnykxyjs zsk 1
    16 shfw_2928 农业推广 shfw collection 1
    17 shfw_2929 企业合作 shfw collection 1
    18 shfw 社会服务 yzhnykxyjs zsk 2
    19 xslw_2472 期刊论文 xslw collection 254
    20 xslw_2526 会议论文 xslw collection 17
    21 xslw_2527 学位论文 xslw collection 32
    22 xslw_3597 jkljkl xslw collection 1
    23 xslw 学术论文 yzhnykxyjs zsk 304
    24 xspy_2533 硕士研究生 xspy collection 6
    25 xspy_2534 博士研究生 xspy collection 6
    26 xspy_2535 博士后 xspy collection 2
    27 xspy 学生培养 yzhnykxyjs zsk 14
    28 jssrcsml_2930 中文书刊 jssrcsml collection 1
    29 jssrcsml 教师私人藏书目录 yzhnykxyjs zsk 1
    30 yzhnykxyjs 浙江大学原子核农业科学研究所 0 community 418
分享到:
评论

相关推荐

    oracle case语句的介绍

    oracle中case的用法介绍,里面有case使用的一些实例

    oracle case when 语句的用法详解

    1. CASE WHEN 表达式有两种形式 代码如下:–简单Case函数 CASE sex ... CASE WHEN 在语句中不同位置的用法2.1 SELECT CASE WHEN 用法 代码如下:SELECT grade, COUNT (CASE WHEN sex = 1 THEN 1 /*sex 1为男生,2位

    Oracle-Decode()函数和CASE语句的比较

    本文讲述了Oracle-Decode()函数和CASE语句的比较。

    case乱码解决

    mysql 中case when 遇到乱码解决。查询语句中含有case引起中文乱码解决方法

    详解Oracle数据库各类控制语句的使用

    本文我们主要介绍了Oracle数据库中各种控制语句的使用,包括逻辑控制语句、Case when的使用、While的使用以及For的使用等,希望本次的介绍能够对您有所收获!

    case when then语句用法

    该语句的执行过程是:将CASE后面表达式的值与各WHEN子句中的表达式的值进行比较,如果两者相等,则返回THEN后的表达式的值,然后跳出CASE语句,否则返回ELSE子句中的表达式的值。ELSE子句是可选项。当CASE语句中不...

    Oracle高级sql学习与练习

    7、CASE表达式 8、ROWNUM-TOP-N分析 9、相关子查询和非相关子查询 10、增强GROUP BY 11、分析函数(ANALYTICAL FUNCTIONS) 12、ROWID的使用 13、ORACLE 10G正则表达式 14、使用HINT 15、PARITION分区 16、并行操作 ...

    oracle学习资料

    第三章 PL/SQL流程控制语句 13 §3.1 条件语句 13 §3.2 CASE 表达式 13 §3.3 循环 13 §3.3 标号和GOTO 13 §3.4 NULL 语句 13 第四章 游标的使用 13 §4.1 游标概念 13 §4.1.1 处理显式游标 13 §4.1.2 处理隐式...

    Oracle Exception汇总(自定义Oracle异常)

    使用CASE语句时在WHEN子句中没有包含必需的条件分支,并且没有包含ELSE语句。 对应ORA-06592错误。 COLLECTION_IS_NULL 给集合元素赋值前,必需初始化集合元素。对应ORA-06531错误。 CURSOR_ALRADY_OPEN 重新打开...

    oracle入门很简单10.zip

    oracle中的控制语句。 包括:条件语句 ifelse case when 循环语句 无条件循环 while循环 for循环

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    oracle 存储过程 基础

    case 语句 case语句如果作为分支控制语句,最后结束语句是end case,如果是作为select语句里的控制语句则只需要end。

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    5.6.3 CASE语句 5.6.4 Loop循环 5.6.5 WHILE循环 5.6.6 FOR循环 5.7 如何创建存储过程以及创建存储过程的原因 5.8 函数的创建和使用 5.9 调用PL/SQL程序 5.10 本章 测验 第6章 数据库管理员 6.1 了解DBA的工作 6.2...

    Oracle Database 11g初学者指南--详细书签版

    5.6.3 CASE语句 141 5.6.4 Loop循环 142 5.6.5 WHILE循环 143 5.6.6 FOR循环 143 5.7 如何创建存储过程以及创建存储过程的原因 146 5.8 函数的创建和使用 149 5.9 调用PL/SQL程序 151 5.10 本章测验 152 第6...

    Oracle_Database_11g完全参考手册.part2

    本书全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有新增功能和工具,如何执行功能强大的SQL查询,如何编写PL/SQL和SQL*Plus语句,如何使用大对象和对象-关系数据库。通过学习本书,您可以了解...

    Oracle_Database_11g完全参考手册.part5

    本书全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有新增功能和工具,如何执行功能强大的SQL查询,如何编写PL/SQL和SQL*Plus语句,如何使用大对象和对象-关系数据库。通过学习本书,您可以了解...

    非常全的oracle文档

    24.8. CASE语句 184 24.9. 循环语句 186 24.10. 复合变量 190 24.11. 记录类型 192 24.12. 表类型 194 24.13. 集合类型 195 24.14. 集合方法 199 24.15. 游标 205 24.16. 异常处理 222 二十五、 PL/SQL高级 228 25.1...

Global site tag (gtag.js) - Google Analytics