一、distinct
1、只显示一次重复出现的值
select distinct 字段1 [,字段2,字段3,字段3] from 表
如果只有一个字段,则去除字段1的结果集相同的记录,如果有字段1、字段2,则去除字段1和字段2的结果集全部相同的记录。
2、使用distinct关键字只能过滤查询字段中所有记录相同的数据,而要制定一个字段却没有效果,并且会对查询的结果进行排序,从而影响查询效率。
select distinct name from temp
能消除name字段重复的记录,现在要取id,name两个字段的值
select distinct name,id from temp
只能消除name,id两个字段相同的记录。
3、用distinct达不到想要的结果,用group by可以解决这个问题。
例如要显示A、B、C三个字段的信息,而A字段不能有重复,可以用下面语句:
select A as A,max(B) as B,max(C)as C,count(*) as total from temp where [条件1] group by A having [条件2] order by A desc[asc]
显示出来的字段和排序的字段都要包括在 group by中,但是显示的字段中含有min、max、sum、count、avg等聚合函数时可以不在group by 中。
一般条件写在条件1位置,有聚合函数他条件写在条件2中。
如果在上句中having加 count(*)>1 就可以查出记录A的重复次数大于1的记录
如果在上句中having加 count(*)>2 就可以查出记录A的重复次数大于2的记录
二、处理NULL
1、在插入数据时,如果字段允许为空,并且没有默认值,插入时没有为本字段赋值,所以该字段的值是null,不是空或0。所以查询内容也是null,在页面或java类中判断该字段的值,应该判断是否为null。而不是“”。
2、用nvl函数去除NULL,说明如下:
nvl(exp1,exp2),当exp1为null时,函数返回exp2;当exp1不为null时,函数返回exp1。exp1和exp2可以是任何数据类型,但是二者的数据类型必须要匹配。
select name,pay+nvl(age,0) as pay from cip_tmps;
3、用nvl2函数去除NULL,说明如下:
nvl2(exp1,exp2,exp3)当exp1为null时,函数返回exp3,当exp1不为null时,函数返回exp2。exp1可以是任何数据类型,但是exp2和exp3必须是除Long之外的任何数据类型,但是三者参数的数据类型必须要匹配。代码如下:
select name,pay+nvl2(age,age,0) as pay from cip_tmps;
三、连接字符串
连接字符串用"||"操作符来完成,当连接字符串时,如果在字符串中要加入数字值,那么在"||"后可以直接制定数字,如果在字符串中加入字符,则必须用单引号引住,代码如下:
select name || '的年龄为:' || age from cip_tmps;
select '记录时间:'|| createdate from cip_tmps;
分享到:
相关推荐
ORACLE__SQL语句教学 ORACLE__SQL语句教学
在Oracle数据库系统中,`V$SQLAREA` 是一个非常重要的动态性能视图,它提供了关于解析、编译和执行的SQL语句的详细信息。这个视图是DBA和性能调优专家用来监控和分析SQL性能的关键工具。标题中的"oracle_V$SQLAREA_....
本资源"ORACLE__SQL语句教学(附有sql最常用经典语句)"显然是一个针对Oracle SQL的深入学习资料,旨在帮助数据库编程者提升技能,成为真正的高手。 首先,让我们来看看SQL的基本概念。SQL是一种用于管理关系型...
在"oracle常用命令集.sql"中,可能包含了如DML(INSERT、UPDATE、DELETE)语句,DDL(CREATE、ALTER、DROP)语句,以及查询优化技巧,例如使用索引、子查询、联接操作等。 4. 数据库操作实例 描述中的"oracle常用...
本项目提供了一个Java源码工具,能够帮助用户便捷地将Oracle SQL语句转换为MySQL SQL语句。 Oracle SQL与MySQL SQL的主要差异在于以下几个方面: 1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在...
5. **存储过程和函数**:存储过程是一组预编译的PL/SQL语句,可以在数据库中存储并重复调用,而函数则返回一个值,两者都是数据库模块化设计的基础。 6. **触发器**:触发器是一种特殊的存储过程,会在特定的数据库...
SQL是一种用于访问和管理关系数据库的标准化语言,而SQL\*Plus则是Oracle提供的一款交互式工具,用于执行SQL语句、PL/SQL块以及管理数据库对象。虽然它们都能执行SQL语句,但SQL\*Plus提供了更多的命令和功能,如...
总的来说,这个压缩包文件是一个宝贵的学习资源,对于想要深入理解Oracle数据库和提升SQL编程技能的IT从业者来说,无疑是值得参考和学习的。通过细致阅读和实践,可以有效地提升在Oracle环境下的数据管理和编程能力...
在Oracle中,动态SQL是一种重要的编程技术,尤其在处理不确定或在运行时才能确定的SQL语句时,它显得尤为关键。本文将深入探讨动态SQL的使用及其在级联删除中的应用。 首先,让我们理解什么是动态SQL。在静态SQL中...
本文详细介绍了如何使用 Oracle SQL Developer 和其他开发工具,包括 Oracle Database Home Page 的使用方法、如何在 Oracle 中使用 SQL*Plus、如何使用 SQL Developer 操作 Oracle 数据库以及如何执行 SQL 语句等...
10. **数据库连接与管理工具**:如SQL*Plus、SQL Developer等,是与Oracle数据库交互的常用工具,它们能帮助我们执行SQL语句,管理数据库对象,以及监控数据库状态。 通过这份“Oracle SQL.ppt”,初学者可以逐步...
在.NET开发环境中,使用C#语言与Oracle数据库进行交互是一种常见的需求。Oracle.ManagedDataAccess是Oracle公司提供的一个客户端库,专门用于C#等.NET语言的Oracle数据库连接和操作。这个库是完全托管的,无需依赖...
ORACLE_SQL语句优化资料
### Oracle 查看当前会话执行的SQL语句 在Oracle数据库管理中,有时我们需要了解某个特定会话(Session)正在执行哪些SQL语句。这在性能调优、问题诊断等场景下尤为重要。以下将详细介绍如何通过不同的方法来查看...