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 语句是一种非常实用且灵活的条件判断表达式,它可以用于根据不同的条件返回不同的值。CASE 语句可以分为两种类型:...
Oracle PL/SQL 结构控制语句详解 Oracle PL/SQL 结构控制语句是 PL/SQL 语言中的一种基本结构,用于控制程序的...通过学习和实践,读者可以更好地理解和应用 Oracle PL/SQL 结构控制语句,提高编程能力和工作效率。
根据给定的文件信息,以下是对Oracle SQL语句...以上是Oracle SQL语句集锦中的核心知识点,涵盖了数据定义、数据操纵、数据查询、事务控制、权限管理和流程控制等多个方面,对于理解和掌握Oracle数据库的使用至关重要。
PL/SQL支持多种控制流语句,如`IF`语句、`CASE`语句、`LOOP`语句等,用于根据条件执行不同的代码路径。 #### PL/SQL中动态执行SQL语句 通过使用动态SQL语句,可以在运行时构建并执行SQL命令,提供更大的灵活性。 ...
在Oracle数据库中,`WHERE`子句是SQL查询语句的一部分,用于指定查询条件,而`CASE WHEN`语句则是一种条件表达式,允许我们基于不同的条件返回不同的值。将`CASE WHEN`嵌套在`WHERE`子句中,可以实现更复杂的逻辑...
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位
其次,`CASE`语句在Oracle SQL中用于条件判断和数据转换。它有多种形式,例如: 1. `CASE WHEN`条件表达式:可以用来根据不同的条件返回不同的结果。例如: ```sql SELECT CASE WHEN substr(to_char(SYSDATE,...
在本实验中,我们主要探讨了Oracle数据库中的SQL语句应用,涉及到了表、视图、索引以及序列等核心概念。以下是对这些知识点的详细解释: 1. **创建表**: - 使用`CREATE TABLE`语句创建了一个名为`person`的表,...
学习PL/SQL的语法,如块结构、控制流程语句(IF、CASE、LOOP等)、异常处理等。 11. 分区(Partitioning):对于大型表,分区是提高查询性能的有效方法,可以按照时间、范围或其他方式对数据进行分割。 12. 权限和...
Oracle CASE WHEN 多条件语句详解 CASE WHEN 语句是 SQL 中的一种条件语句,用于实现多个条件的判断和执行。它可以用来代替 IF 语句和 SWITCH 语句,在 Oracle 数据库中尤其常用。 CASE WHEN 语句的基本语法是: `...
根据提供的文件信息,本文将对SQL Server、Oracle与DB2三种主流关系型数据库管理系统中的SQL语句进行详细的对比分析。这不仅有助于理解不同数据库系统之间的差异,也为开发人员提供了跨平台迁移时所需的必要知识。 ...
15. **存储过程和函数**:自定义的代码块,可以包含多个SQL语句和控制流程,提高代码复用和数据库性能。 综上所述,这个资源涵盖了Oracle数据库查询的多个核心方面,无论你是初学者还是经验丰富的开发者,都能从中...
Oracle数据库中的`Decode()`函数和`CASE`语句都是用于条件判断和数据转换的重要工具,它们各有特点,适用场景也有所不同。以下是对这两个功能的详细比较。 首先,`Decode()`函数是一个简化的条件表达式,它允许你在...
### Oracle优化语句详解 #### 一、选择最有效率的表名顺序 在Oracle数据库中,优化查询语句的第一步就是确保表名顺序能够帮助提高执行效率。Oracle的解析器按照从右到左的顺序处理`FROM`子句中的表名。这意味着`...
根据提供的文件内容,本文将对其中提及的SQL与Oracle语句进行详细解析,并结合实际应用场景进行阐述,旨在帮助读者更好地理解和掌握这些基本概念及其用法。 ### 一、数据操作 #### 1. SELECT(从数据库表中检索...
在Oracle数据库中,控制语句是编程和SQL脚本中不可或缺的部分,它们允许你根据条件执行不同的代码块,实现流程控制。以下是对标题和描述中提及的几种控制语句的详细解释: 1. **逻辑控制语句**: - `IF-ELSIF-ELSE...
本教学设计旨在帮助学生掌握如何使用选择结构来控制程序流程,这包括了if语句、if...else语句、if...else if...else语句以及switch语句。 1. **if语句**:这是最基础的选择结构,当指定的条件为真时,执行紧跟其后...
执行部分包含一系列的PLSQL语句,如赋值、流程控制语句(IF-THEN-ELSIF-ELSE、CASE、WHILE、FOR循环)以及SQL语句。异常处理部分用于捕获和处理运行时错误。 在Oracle中,SQL语句主要有以下几类: 1. **数据查询...