-- Create table
create table T110JQ
(
JQNO varchar2(20) not null,
JQCHARA varchar2(20),
JQXZDM varchar2(20),
SSDW varchar2(20),
BJTYPE02. varchar2(20)
)
;
-- Create/Recreate primary, unique and foreign key constraints
alter table T110JQ
add constraint JQNO primary key (JQNO);
==============================================================================
-- Create table
create table TJQXZDM
(
JQXZCODE varchar2(20) not null,
BZJQXZDM varchar2(20)
)
;
-- Create/Recreate primary, unique and foreign key constraints
alter table TJQXZDM
add constraint JQXZCODE primary key (JQXZCODE);
==============================================================================
-- Create table
create table JL
(
DWCODE varchar2(20) not null,
BZDWCODE varchar2(20),
BZDWNAME varchar2(20)
)
;
-- Create/Recreate primary, unique and foreign key constraints
alter table JL
add constraint DWCODE primary key (DWCODE);
==============================================================================
T110JQ表数据
JQNO JQCHARA JQXZDM SSDW BJTYPE
1 1 刑事案件 1001 445821 亲临
2 2 行政案件 1002 445822 亲临
3 3 民事案件 1003 445823 亲临
4 4 行政案件 1004 445821 亲临
TJQXZDM表数据
JQXZCODE BZJQXZDM
1 5 1001
2 6 1002
3 7 1003
4 8 1004
JL表数据
DWCODE BZDWCODE BZDWNAME
1 9 445821 芙蓉区分局
2 10 445821 万家丽派出所
3 11 445821 马王堆派出所
4 12 445822 天心区分局
5 13 445823 下河街派出所
6 14 445823 开福区派出所
========================================================
不去重的语句:
select t.jqno,t.*,z.* ,f.*
from T110JQ t,TJQXZDM z ,JL f
where t.jqxzdm=z.bzjqxzdm and f.bzdwcode=t.ssdw and t.bjtype='亲临' order by t.jqno DESC
得出的结果是:
JQNO JQNO JQCHARA JQXZDM SSDW BJTYPE JQXZCODE BZJQXZDM DWCODE BZDWCODE BZDWNAME
1 4 4 行政案件 1004 445821 亲临 8 1004 9 445821 芙蓉区分局
2 4 4 行政案件 1004 445821 亲临 8 1004 11 445821 马王堆派出所
3 4 4 行政案件 1004 445821 亲临 8 1004 10 445821 万家丽派出所
4 3 3 民事案件 1003 445823 亲临 7 1003 14 445823 开福区派出所
5 3 3 民事案件 1003 445823 亲临 7 1003 13 445823 下河街派出所
6 2 2 行政案件 1002 445822 亲临 6 1002 12 445822 天心区分局
7 1 1 刑事案件 1001 445821 亲临 5 1001 10 445821 万家丽派出所
8 1 1 刑事案件 1001 445821 亲临 5 1001 11 445821 马王堆派出所
9 1 1 刑事案件 1001 445821 亲临 5 1001 9 445821 芙蓉区分局
去重处理的语句:
select t.jqno,t.*,z.*,f.* from T110JQ t,TJQXZDM z,
(select * from (select rank() over(partition by bzdwcode order by dwcode desc) r,a.* from jl a) where r=1) f
where t.jqxzdm=z.bzjqxzdm and 1=1 and t.bjtype='亲临' and t.ssdw=f.bzdwcode
结果:
1 4 4 行政案件 1004 445821 亲临 8 1004 1 9 445821 芙蓉区分局
2 1 1 刑事案件 1001 445821 亲临 5 1001 1 9 445821 芙蓉区分局
3 2 2 行政案件 1002 445822 亲临 6 1002 1 12 445822 天心区分局
4 3 3 民事案件 1003 445823 亲临 7 1003 1 14 445823 开福区派出所
总结关键是JL表的去重,只取第一条语句:
(select * from (select rank() over(partition by bzdwcode order by dwcode desc) r,a.* from jl a) where r=1) f
相关推荐
- `SELECT * FROM cte WHERE rn = 1`:这一行代码用于选择每个分组中的第一条记录,即行号为1的记录。 #### 总结 本文介绍了两种在Oracle数据库中去除重复数据的方法:一是通过子查询实现,二是利用窗口函数`ROW_...
MINUS关键字用于在两个查询结果之间找到差异,返回的结果是只存在于第一个查询中的行。需要注意的是,MINUS操作也会自动去除重复行。 最后,游标(CURSOR)是Oracle处理结果集的一种方式,主要用于存储过程和函数。...
在Oracle笔记的第一天,我们主要探讨了数据库的基本概念、Oracle的工作方式、简单的查询操作、数据去重、排序以及条件判断。 首先,数据库是存储和管理数据的软件,其中最常见的是RDBMS,如Oracle、MySQL、SQL ...
2. **Oracle进程**:Oracle在运行时会创建多个后台进程,每个进程都有特定的功能,例如控制进程、数据写入进程等。 #### 三、Oracle表空间管理 1. **创建表空间**:用于存储数据库对象,如表、索引等。 ```sql ...
在多列索引中,优先使用第一个列作为查询条件,可以最大化索引的使用效率。 ##### 3.36 ORACLE内部操作 了解Oracle内部如何处理SQL语句,可以帮助优化查询逻辑,减少不必要的操作。 ##### 3.37 用UNION-ALL替换...
- 第一条命令展示了如何计算年薪 (`salary * 12`) 并给它起别名 `annual_salary`。 - 第二条命令展示了如何执行算术运算 (`5 / 2`)。 ##### 5. 给列定义别名 - **命令示例**: ```sql SELECT employee_id AS id ...
3. **连接 (Join):** 用于从两个或更多表中检索数据。 - 示例: `SELECT * FROM 表1 JOIN 表2 ON 表1.键 = 表2.键;` —— 基于共同键连接两个表。 4. **会话 (Session):** 在 SQL Developer 中,向数据库服务器请求...
Oracle数据库是世界上最广泛使用的数据库管理系统之一,主要用于存储和管理企业级的数据。马士兵的Oracle笔记提供了许多关于Oracle SQL的基础操作和技巧,以下是其中的关键知识点: 1. **SQLPlus登录**:Oracle...
- `MINUS`:返回第一个查询结果集中不在第二个查询结果集中的行。 ### 9. 数据操作 (Chapter10) 这部分内容将涉及如何对数据库中的数据进行增删改操作。 - `INSERT`语句:向表中插入新记录。 - `UPDATE`语句:更新...
- **DUAL 是系统中的一张空表**:`DUAL`表通常用于测试查询语句或获取某些系统信息,因为该表仅包含一条记录。 - **SELECT * FROM DUAL**:查询`DUAL`表的所有列,由于`DUAL`表只有一个记录,因此该查询结果也只有一...
3. CONCAT函数:CONCAT用于连接两个或更多字符串。例如,CONCAT('010-', '88888888')返回'010-88888888',可以用于构建电话号码。 4. INITCAP函数:此函数将字符串中的每个单词首字母转换为大写,其余字母保持原样...
3. **表空间与数据文件的关系**:一个表空间物理上可以对应一个或多个数据文件。这意味着一个表空间内的数据可以分布在多个数据文件中,以实现更好的性能和管理。 4. **逻辑存储结构**:根据存储数据的不同类型,...
- 每个表空间可以对应一个或多个**数据文件**。 4. **逻辑存储结构**: - 根据存储数据的类型,段可以分为: - **数据段**:存储表中的数据。 - **索引段**:存储索引信息。 - **回退段**:用于事务的回滚操作...
在基于成本的优化器模式下,选择最具选择性的索引可以显著提高查询效率,尤其是在连接多个表进行扫描时。 #### 35. 避免使用耗费资源的操作 避免在查询中使用过多的资源消耗操作,如复杂的计算或函数调用,可以...
### Oracle SQL语句大全知识点详解...通过以上知识点的学习,我们可以更好地理解和掌握Oracle SQL的基本操作,包括表结构的描述、数据的查询、筛选以及排序等功能,为后续更深入的数据库管理和数据分析打下坚实的基础。
`NVL2`函数更进一步,当表达式为`NULL`时返回第二个参数,否则返回第一个参数,如`NVL2(column, value_if_not_null, default_value_if_null)`。 3. 字符串连接: Oracle使用双竖线`||`作为字符串连接运算符,例如`...
36. **总是使用索引的第一个列**:索引的前几列最常被用于查询,确保这些列在 WHERE 子句中。 37. **ORACLE 内部操作**:理解 Oracle 的内部工作原理可以帮助优化 SQL。 38. **用 UNION-ALL 替换 UNION**:如果不...
NVL(XX, XX)**: 当第一个参数为 `NULL` 时,返回第二个参数。例如: ```sql SELECT NVL(salary, 0) AS calculated_salary FROM employees; ``` - **7. 设置编码**: 用于设置数据库的字符集,确保数据正确显示。...
`将显示`emp`表中的所有行和列数据,这有助于快速获取表的完整内容,但需要注意,当表数据量大时,此操作可能会消耗较多资源。 ### 字段别名 在查询结果中,可以使用AS关键字或简单地用空格分隔来为字段设置别名,...