- 浏览: 323269 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (254)
- java (178)
- tomcat (6)
- 邮件 (1)
- smtp (1)
- Linux (2)
- 编码 (2)
- 导入工程 (1)
- Specification Level (1)
- hibernate (10)
- 字段类型 (1)
- 字段类型匹配 (1)
- 数据库 (3)
- sql (9)
- struts2 (8)
- 类型转换 (2)
- java,MyEclipse,SVN (1)
- Myecplise (4)
- 输入校验 (1)
- JFrame (2)
- Oracle (8)
- google (1)
- Swing (3)
- Fusioncharts (1)
- 找工作 (0)
- js (4)
- jsp (11)
- displaytag (1)
- spring (8)
- 工作 (1)
- String (1)
- 算法 (2)
- IO (1)
- xml (3)
- 设计模式 (1)
- UML (1)
- 文档 (1)
- ajax (1)
- 日常 (7)
- sql server (1)
- mysql (3)
- git (1)
- Maven (1)
- mongodb (1)
- postman (1)
最新评论
1、NVL函数
oracle中很有用的一个函数,以前用过今天用的时候没想起来,结果可想而知——浪费时间呗,好了,闲话少说,步入正题。
标准解释
NVL(expr1,expr2)
如果expr1是NULL,则返回expr2,否则返回expr1.返回值与expr1类型相同,除非expr1是字符串类,在这种情况下将返回VARCHAR2类型.这个函数用于确保查询记录集中不包含NULL值.
类似的还有
NVL(expr1,expr2,expr3)
如果expr1是NULL,则返回expr2,否则返回expr3.返回值与expr2类型相同,除非expr2是字符类型,在这种情况下返回VARCHAR2类型。
今天我用的例子举个实例吧。
--从两个表中更新数据
--描述如下
--a:a1,a2,a3,……
--b:b1,b2,b3,……
--a.a1,a.a2与b.b1,b,b2对应的字段属性一样,存在对应关系,现在a.a2缺值要来自b.b2,
--由于表a的a2的约束条件是not null,第一次写的时候也没留意,导致一直更新不了,
--第一次代码:
--update a set a.a2=(select b.b2 from b where a.a1=b.b1);
--死活更新不了,后来琢磨半天,原来a2有约束不能为null,使用nvl更新后的代码如下:
--update a set a.a2=nvl((select b.b2 from b where a.a1=b.b1),a.a2);
--ok顺利更新!
2、TRUNC()函数:
--Oracle trunc()函数的用法
/**************日期********************/
1.select trunc(sysdate) from dual --2011-3-18 今天的日期为2011-3-18
2.select trunc(sysdate, 'mm') from dual --2011-3-1 返回当月第一天.
3.select trunc(sysdate,'yy') from dual --2011-1-1 返回当年第一天
4.select trunc(sysdate,'dd') from dual --2011-3-18 返回当前年月日
5.select trunc(sysdate,'yyyy') from dual --2011-1-1 返回当年第一天
6.select trunc(sysdate,'d') from dual --2011-3-13 (星期天)返回当前星期的第一天
7.select trunc(sysdate, 'hh') from dual --2011-3-18 14:00:00 当前时间为14:41
8.select trunc(sysdate, 'mi') from dual --2011-3-18 14:41:00 TRUNC()函数没有秒的精确
9.select trunc(sysdate, 'q') from dual --返回当前季度的第一天
/***************数字********************/
/*
TRUNC(number,num_digits)
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
TRUNC()函数截取时不进行四舍五入
*/
9.select trunc(123.458) from dual --123
10.select trunc(123.458,0) from dual --123
11.select trunc(123.458,1) from dual --123.4
12.select trunc(123.458,-1) from dual --120
13.select trunc(123.458,-4) from dual --0
14.select trunc(123.458,4) from dual --123.458
15.select trunc(123) from dual --123
16.select trunc(123,1) from dual --123
17.select trunc(123,-1) from dual --120
http://database.51cto.com/art/201004/197703.htm
3、ROUND()函数:
Round( ) 函数
传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果
语法
ROUND( number, decimal_places )
number : 需四舍五入处理的数值
decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 )
返回值类型
数字
例子
select round(123.456, 0) from dual; 回传 123
select round(123.456, 1) from dual; 回传 123.5
select round(123.456, 2) from dual; 回传 123.46
select round(123.456, 3) from dual; 回传 123.456
select round(-123.456, 2) from dual; 回传 -123.46
4、DECODE()函数:
语法如下:
DECODE(control_value,value1,result1[,value2,result2…][,default_result]);
control _value
试图处理的数值。DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。
value1
是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result1
是一组成序偶的结果值。
default_result 未能与任何一个值匹配时,函数返回的默认值。
示例如下:
select decode( x , 1 , ‘x is 1 ’, 2 , ‘x is 2 ’, ‘others’) from dual
当x等于1时,则返回‘x is 1’。
当x等于2时,则返回‘x is 2’。
否则,返回others’。
在需要比较2个值的时候,我们可以配合SIGN()函数一起使用。
SELECT DECODE( SIGN(5 -6), 1 'Is Positive', -1, 'Is Nagative', 'Is Zero')
另外,大家还可以在Order by中使用Decode。
例:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用Decode完成要求了。
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)
使用方法:
1、比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。
5、LAST_DAY()函数:
LAST_DAY函数返回指定日期对应月份的最后一天。
例:last_day(to_date('1999.11.29','yyyy.mm.dd')) 返回 1999年11月31日
例:last_day(to_date('2000.02.01','yyyy.mm.dd')) 返回 2000年2月29日
6、ADD_MONTHS()函数:
使用oracle add_months函数,就可以以得到某一时间之前或之后n个月的时间,如果您之前遇到过类似方面到的问题,不妨一看。
如果需要取上一个月的数据,并且每天都要进行此操作,每次都需要改时间,的确非常的麻烦,所以想到了oracle add_months函数这个函数
oracle add_months函数:
oracle add_months(time,months)函数可以得到某一时间之前或之后n个月的时间
如 select add_months(sysdate,-6) from dual;
该查询的结果是当前时间半年前的时间
select add_months(sysdate,6) from dual;
该查询的结果是当前时间半年后的时间
oracle中很有用的一个函数,以前用过今天用的时候没想起来,结果可想而知——浪费时间呗,好了,闲话少说,步入正题。
标准解释
NVL(expr1,expr2)
如果expr1是NULL,则返回expr2,否则返回expr1.返回值与expr1类型相同,除非expr1是字符串类,在这种情况下将返回VARCHAR2类型.这个函数用于确保查询记录集中不包含NULL值.
类似的还有
NVL(expr1,expr2,expr3)
如果expr1是NULL,则返回expr2,否则返回expr3.返回值与expr2类型相同,除非expr2是字符类型,在这种情况下返回VARCHAR2类型。
今天我用的例子举个实例吧。
--从两个表中更新数据
--描述如下
--a:a1,a2,a3,……
--b:b1,b2,b3,……
--a.a1,a.a2与b.b1,b,b2对应的字段属性一样,存在对应关系,现在a.a2缺值要来自b.b2,
--由于表a的a2的约束条件是not null,第一次写的时候也没留意,导致一直更新不了,
--第一次代码:
--update a set a.a2=(select b.b2 from b where a.a1=b.b1);
--死活更新不了,后来琢磨半天,原来a2有约束不能为null,使用nvl更新后的代码如下:
--update a set a.a2=nvl((select b.b2 from b where a.a1=b.b1),a.a2);
--ok顺利更新!
2、TRUNC()函数:
--Oracle trunc()函数的用法
/**************日期********************/
1.select trunc(sysdate) from dual --2011-3-18 今天的日期为2011-3-18
2.select trunc(sysdate, 'mm') from dual --2011-3-1 返回当月第一天.
3.select trunc(sysdate,'yy') from dual --2011-1-1 返回当年第一天
4.select trunc(sysdate,'dd') from dual --2011-3-18 返回当前年月日
5.select trunc(sysdate,'yyyy') from dual --2011-1-1 返回当年第一天
6.select trunc(sysdate,'d') from dual --2011-3-13 (星期天)返回当前星期的第一天
7.select trunc(sysdate, 'hh') from dual --2011-3-18 14:00:00 当前时间为14:41
8.select trunc(sysdate, 'mi') from dual --2011-3-18 14:41:00 TRUNC()函数没有秒的精确
9.select trunc(sysdate, 'q') from dual --返回当前季度的第一天
/***************数字********************/
/*
TRUNC(number,num_digits)
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
TRUNC()函数截取时不进行四舍五入
*/
9.select trunc(123.458) from dual --123
10.select trunc(123.458,0) from dual --123
11.select trunc(123.458,1) from dual --123.4
12.select trunc(123.458,-1) from dual --120
13.select trunc(123.458,-4) from dual --0
14.select trunc(123.458,4) from dual --123.458
15.select trunc(123) from dual --123
16.select trunc(123,1) from dual --123
17.select trunc(123,-1) from dual --120
http://database.51cto.com/art/201004/197703.htm
3、ROUND()函数:
Round( ) 函数
传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果
语法
ROUND( number, decimal_places )
number : 需四舍五入处理的数值
decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 )
返回值类型
数字
例子
select round(123.456, 0) from dual; 回传 123
select round(123.456, 1) from dual; 回传 123.5
select round(123.456, 2) from dual; 回传 123.46
select round(123.456, 3) from dual; 回传 123.456
select round(-123.456, 2) from dual; 回传 -123.46
4、DECODE()函数:
语法如下:
DECODE(control_value,value1,result1[,value2,result2…][,default_result]);
control _value
试图处理的数值。DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。
value1
是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result1
是一组成序偶的结果值。
default_result 未能与任何一个值匹配时,函数返回的默认值。
示例如下:
select decode( x , 1 , ‘x is 1 ’, 2 , ‘x is 2 ’, ‘others’) from dual
当x等于1时,则返回‘x is 1’。
当x等于2时,则返回‘x is 2’。
否则,返回others’。
在需要比较2个值的时候,我们可以配合SIGN()函数一起使用。
SELECT DECODE( SIGN(5 -6), 1 'Is Positive', -1, 'Is Nagative', 'Is Zero')
另外,大家还可以在Order by中使用Decode。
例:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用Decode完成要求了。
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)
使用方法:
1、比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。
5、LAST_DAY()函数:
LAST_DAY函数返回指定日期对应月份的最后一天。
例:last_day(to_date('1999.11.29','yyyy.mm.dd')) 返回 1999年11月31日
例:last_day(to_date('2000.02.01','yyyy.mm.dd')) 返回 2000年2月29日
6、ADD_MONTHS()函数:
使用oracle add_months函数,就可以以得到某一时间之前或之后n个月的时间,如果您之前遇到过类似方面到的问题,不妨一看。
如果需要取上一个月的数据,并且每天都要进行此操作,每次都需要改时间,的确非常的麻烦,所以想到了oracle add_months函数这个函数
oracle add_months函数:
oracle add_months(time,months)函数可以得到某一时间之前或之后n个月的时间
如 select add_months(sysdate,-6) from dual;
该查询的结果是当前时间半年前的时间
select add_months(sysdate,6) from dual;
该查询的结果是当前时间半年后的时间
- 开发过程中遇到的一些SQL示例.rar (4.4 KB)
- 下载次数: 0
发表评论
-
取消订单还原bug问题查找
2015-11-24 20:21 228select * from dr_business_deput ... -
Oracle行列互换 横表和纵表相互转换
2014-05-22 19:15 5706行列互换 Java代码 收藏代码 /* 在实际使用sq ... -
to_char与trunc函数 比较区别
2014-04-21 19:40 1080出处:http://blog.sina.com.cn/s/bl ... -
Oracle数据库导入导出数据(备份)总结
2014-04-09 19:40 567我们一般日常开法中用到的数据库导入导出备份就两种,一种是备份表 ... -
项目开发里遇到的一些统计分析、超限率等的一些sql
2014-02-20 17:40 742本人本月等超载率的sql: 本日:select t1 ... -
Oracle TO_CHAR函数详解
2014-01-13 17:49 1578出处:http://blog.csdn.net/ytfy12/ ... -
Oracle常见命令
2013-08-13 16:57 625--SQL plus连接远程Oralce数据库: sql ... -
orcale中各个数据类型和java中各个数据类型的对应关系
2013-07-24 10:53 910Mysql Oracle Java BIGINT NUMBE ... -
oracle日期函数集锦
2013-04-25 14:30 872一、 常用日期数据格式 1.Y或YY或YYY 年的最后一位 ... -
PL/SQL Developer远程连接Oracle
2013-04-03 14:06 650http://blog.chinaunix.net/uid-2 ... -
常见SQL语句及其函数集锦2
2013-03-25 16:18 966第八天(操作数据) insert ... -
sql语句时间类型字字段总结
2013-03-11 18:19 1090例如查询数据库里某时间端内的数据: select count( ... -
sql内连接,inner join、left join、right join区别及联系、用法
2013-02-27 13:42 1133http://www.docin.com/p-79720976 ... -
常见SQL语句及其函数集锦
2012-12-29 12:15 16171、select DISTINCT amout from ch ... -
常用sql语句
2012-11-21 16:58 868查询某个表里的所有字段名和字段类型: select COLUM ...
相关推荐
而"Oracle常用函数集锦"则是专门针对Oracle数据库中的特定函数进行的汇总,对于数据库查询和数据处理非常实用。 在SQL的学习过程中,你会接触到以下几个关键知识点: 1. **SQL基础**:包括SQL的数据类型(如整型、...
通过深入学习和实践这些Oracle常用函数,你可以更有效地处理数据库中的数据,无论是查询、分析还是报表生成,都将更加得心应手。不断探索和掌握这些函数,将使你在Oracle数据库管理领域更加游刃有余。
Oracle 常用函数大全 Oracle 中有许多常用函数,以下是其中一些: 字符函数 1. ASCII:返回与指定的字符对应的十进制数。例如:`SELECT ASCII('A') FROM DUAL;` 返回 65。 2. CHR:给出整数,返回对应的字符。...
hive和oracle常用函数对照,包含常用的函数分类 字符函数 数值函数 日期函数 聚合函数 转换函数 其他 增加的hive函数对比,只需要2个积分喔
oracle常用函数oracle常用函数oracle常用函数oracle常用函数oracle常用函数oracle常用函数oracle常用函数
Oracle常用函数大全 Oracle常用函数大全是一个非常重要的知识点,涵盖了许多实用的函数,例如日期函数、字符串函数、聚合函数等。这些函数可以帮助开发者更方便地进行数据库操作和数据分析。本文将详细介绍Oracle...
ORACLE内置函数,相当于C语言中的库函数,提供了常规数据库编程中所需的绝大多数基本功能,并且通过函数的组合或嵌套使用,可以发挥其强大的功能。由于这些内置函数都是由ORACLE公司的编程大家所写,而且其执行代码...
Oracle常见函数整理 Oracle提供了多种函数来处理日期、数字和字符类型的数据,以下是常见的Oracle函数整理: 日期函数: 1. 日期转字符型:to_char()函数将日期类型转换为字符类型,例如to_char(sysdate,'YYYY-MM...
通过学习将Oracle和Hive的常用函数整理出来做了个对比,提供他们各自支持的常用函数。
以下是对标题和描述中提到的Oracle常用函数的详细总结: 1. ASCII 函数:这个函数返回一个字符对应的ASCII码,即十进制数字。例如,`ASCII('A')`返回65,`ASCII(' ')`返回32(空格的ASCII码)。 2. CHR 函数:与...
Oracle数据库中的常用函数是数据库管理员和开发人员在处理数据时不可或缺的工具。这些函数极大地提高了数据处理的效率和灵活性。以下是一些常见的Oracle分析函数及其用法: 1. **开窗函数(Over)**: 开窗函数允许...
sql,mysql,oracle常用的函数
"Oracle常用函数chm版"是一个集合了多种Oracle数据库常用函数的参考资源,主要包含以下几个方面: 1. **数值型函数**:这类函数主要用于处理整数、浮点数等数值类型的数据。例如,`ROUND`函数用于四舍五入,`TRUNC`...
以下是从“Oracle常用函数.txt”文件中提炼出的关键知识点,旨在为初学者提供深入理解与实践的指导。 ### ASCII() 和 CHR() - **ASCII()** 函数用于返回一个字符的ASCII码值。例如,`ASCII('A')` 返回的是65,而 `...
### Oracle常用函数详解 #### 一、概述 Oracle 数据库提供了丰富的内置函数,极大地提高了 SQL 语句在处理数据时的灵活性与效率。这些函数主要分为两大类:单行函数和多行函数(也称为聚合函数)。单行函数通常...
3.CONCAT:连接两个字符串; SQL> select concat('010-','88888888')||'转23' 张三电话 from dual; 张三电话 ...SQL> select instr('oracle traning','ra',1,2) instring from dual; INSTRING ---------
Oracle创建函数是通过PL/SQL自定义编写的,通过关键字function按照自己的需求把复杂的业务逻辑封装进PL/SQL函数中,函数提供一个返回值,返回给使用者。这样使用者就不需要去理解业务逻辑,把PL/SQL函数中的业务逻辑...