`

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 语句介绍及应用案例 #### 一、Oracle CASE 语句概述 在 Oracle 数据库中,CASE 语句是一种非常实用且灵活的条件判断表达式,它可以用于根据不同的条件返回不同的值。CASE 语句可以分为两种类型:...

    oracle PLSQL结构控制语句

    Oracle PL/SQL 结构控制语句详解 Oracle PL/SQL 结构控制语句是 PL/SQL 语言中的一种基本结构,用于控制程序的...通过学习和实践,读者可以更好地理解和应用 Oracle PL/SQL 结构控制语句,提高编程能力和工作效率。

    Oracle sql 语句集锦

    根据给定的文件信息,以下是对Oracle SQL语句...以上是Oracle SQL语句集锦中的核心知识点,涵盖了数据定义、数据操纵、数据查询、事务控制、权限管理和流程控制等多个方面,对于理解和掌握Oracle数据库的使用至关重要。

    Oracle经典教程1——走进Oracle

    PL/SQL支持多种控制流语句,如`IF`语句、`CASE`语句、`LOOP`语句等,用于根据条件执行不同的代码路径。 #### PL/SQL中动态执行SQL语句 通过使用动态SQL语句,可以在运行时构建并执行SQL命令,提供更大的灵活性。 ...

    oracle where case when where后面跟case when

    在Oracle数据库中,`WHERE`子句是SQL查询语句的一部分,用于指定查询条件,而`CASE WHEN`语句则是一种条件表达式,允许我们基于不同的条件返回不同的值。将`CASE WHEN`嵌套在`WHERE`子句中,可以实现更复杂的逻辑...

    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系列教程三+oracle复杂SQL语句.doc

    其次,`CASE`语句在Oracle SQL中用于条件判断和数据转换。它有多种形式,例如: 1. `CASE WHEN`条件表达式:可以用来根据不同的条件返回不同的结果。例如: ```sql SELECT CASE WHEN substr(to_char(SYSDATE,...

    Oracle实验二-SQL语句综合应用

    在本实验中,我们主要探讨了Oracle数据库中的SQL语句应用,涉及到了表、视图、索引以及序列等核心概念。以下是对这些知识点的详细解释: 1. **创建表**: - 使用`CREATE TABLE`语句创建了一个名为`person`的表,...

    Oracle 教程语句及相关代码 英文版.rar

    学习PL/SQL的语法,如块结构、控制流程语句(IF、CASE、LOOP等)、异常处理等。 11. 分区(Partitioning):对于大型表,分区是提高查询性能的有效方法,可以按照时间、范围或其他方式对数据进行分割。 12. 权限和...

    casewhen多条件oracle-casewhen(casewhen同时满足多条件).pdf

    Oracle CASE WHEN 多条件语句详解 CASE WHEN 语句是 SQL 中的一种条件语句,用于实现多个条件的判断和执行。它可以用来代替 IF 语句和 SWITCH 语句,在 Oracle 数据库中尤其常用。 CASE WHEN 语句的基本语法是: `...

    SQL_Server,Oracle,DB2数据库SQL语句比较

    根据提供的文件信息,本文将对SQL Server、Oracle与DB2三种主流关系型数据库管理系统中的SQL语句进行详细的对比分析。这不仅有助于理解不同数据库系统之间的差异,也为开发人员提供了跨平台迁移时所需的必要知识。 ...

    45 个非常有用的 Oracle 查询语句(1).rar_oracle

    15. **存储过程和函数**:自定义的代码块,可以包含多个SQL语句和控制流程,提高代码复用和数据库性能。 综上所述,这个资源涵盖了Oracle数据库查询的多个核心方面,无论你是初学者还是经验丰富的开发者,都能从中...

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

    Oracle数据库中的`Decode()`函数和`CASE`语句都是用于条件判断和数据转换的重要工具,它们各有特点,适用场景也有所不同。以下是对这两个功能的详细比较。 首先,`Decode()`函数是一个简化的条件表达式,它允许你在...

    oracle 优化语句

    ### Oracle优化语句详解 #### 一、选择最有效率的表名顺序 在Oracle数据库中,优化查询语句的第一步就是确保表名顺序能够帮助提高执行效率。Oracle的解析器按照从右到左的顺序处理`FROM`子句中的表名。这意味着`...

    SQL和oracle语句大全

    根据提供的文件内容,本文将对其中提及的SQL与Oracle语句进行详细解析,并结合实际应用场景进行阐述,旨在帮助读者更好地理解和掌握这些基本概念及其用法。 ### 一、数据操作 #### 1. SELECT(从数据库表中检索...

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

    在Oracle数据库中,控制语句是编程和SQL脚本中不可或缺的部分,它们允许你根据条件执行不同的代码块,实现流程控制。以下是对标题和描述中提及的几种控制语句的详细解释: 1. **逻辑控制语句**: - `IF-ELSIF-ELSE...

    JAVA程序教学设计:选择结构语句——星期判断.doc

    本教学设计旨在帮助学生掌握如何使用选择结构来控制程序流程,这包括了if语句、if...else语句、if...else if...else语句以及switch语句。 1. **if语句**:这是最基础的选择结构,当指定的条件为真时,执行紧跟其后...

    PLSQL及oracle的SQL语句

    执行部分包含一系列的PLSQL语句,如赋值、流程控制语句(IF-THEN-ELSIF-ELSE、CASE、WHILE、FOR循环)以及SQL语句。异常处理部分用于捕获和处理运行时错误。 在Oracle中,SQL语句主要有以下几类: 1. **数据查询...

Global site tag (gtag.js) - Google Analytics