Oracle 函数整理
一、字符控制函数
函数 | 结果 |
CONCAT('Hello','World') | HelloWorld |
SUBSTR('HelloWorld',1,5) | Hello |
LENGTH('HelloWorld') | 10 |
INSTR('HelloWorld','W') | 6 |
LPAD(salary,10,'*'):工资显示10位不足时用*补充 | ******2400 |
RPAD(salary,10,'*') | 2400****** |
TRIM('H' FROM 'HelloWorld') | elloWorld |
REPLACE('HelloWorld','H','E') | EelloWorld |
二、大小写控制函数
函数 | 结果 |
LOWER('HelloWorld') | HELLOWORLD |
UPPER('HelloWorld') | helloworld |
INITCAP('HelloWorld SQL') | Helloworld Sql |
三、数字函数
函数 | 结果 |
ROUND(四舍五入):ROUND(45.926,2) | 45.93 |
TRUNC(截断):TRUNC(45.926,2) | 45.92 |
MOD(求余):MOD(1600,300) | 100 |
四、日期函数
Oracle 中的日期型数据实际含有两个值: 日期和时间(函数SYSDATE 的返回值)
● 在日期上加上或减去一个数字结果仍为日期。
● 两个日期相减返回日期之间相差的天数。(日期不允许做加法运算,无意义)
● 可以用数字除24来向日期中加上或减去天数。
函数 | 描述 |
MONTHS_BETWEEN | 两个日期相差的天数 |
ADD_MONTHS | 向指定日期加上若干个月 |
NEXT_DAY | 指定日期的下一个星期*对应的日期 |
LAST_DAY | 本月的最后一天 |
ROUND | 日期四舍五入 |
TRUNC | 日期截取 |
举例:MONTHS_BETWEEN('01-SEP-95','11-JAN-94')——> 19.6774194
ADD_MONTHS ('11-JAN-94',6) ——> '11-JUL-94'
NEXT_DAY ('01-SEP-95','FRIDAY') ——> '08-SEP-95'
LAST_DAY('01-FEB-95') ——> '28-FEB-95'
五、数据类型转化
日期格式元素与显示情况列表如下(TO_CHAR(data,'format_model)函数对日期转换时,format_model常用的属性如下):
时间格式:
举个栗子:
TO_CHAR函数对数字的转换(TO_CHAR(number,'format_model')):下面在 TO_CHAR 函数中经常使用的几种格式:
9 | 数字 |
0 | 零 |
$ | 美元符 |
L | 本地货币符号 |
' | 小数点 |
, | 千位符 |
举个栗子:
六、通用函数:这些函数适用于任何数据类型,同时也适用于空值
【1】NVL(expr1,expr2):将空值转化成一个已知的值,可以使用的数据类型有日期、字符、数字。函数的一般形式有:
— NVL(commission_pct,0)
— NVL(hire_date,'01-JAN-97')
— NVL(job_id,'No Job Yet')
【2】NVL2(expr1,expr2,expr3):expr1不为NULL,返回expr2;为NULL时,返回expr3。
【3】NULLIF(expr1,expr2):相等返回NULL,不相等返回expr1。
【4】COALESCE(expr1,expr2,......,exprn):与 NVL 相比有点在于 COALESCE 可以同时处理交替的多个值。如果第一个表达式为NULL,则返回下一个表达式,依次类推。
七、条件表达式
【1】、在 SQL 语句中使用 IF-THEN-ELSE 逻辑时,使用两种方法:
— CASH 表达式
CASE expr WHEN comparison_expr1 THEN return_expr1
[WHEN comparison_expr2 THEN return_expr2
WHEN comparison_exprn THEN return_exprn
ELSE else_expr]
END
☛下面使用 case 表达式的一个例子:
— DECODE 函数
DECODE(col|expression, search1, result1 ,
[, search2, result2,...,]
[, default])
☛下面使用 case 表达式的一个例子:
八、分组函数
常用的分组函数如下(经常使用就不过多解释了):GROUP BY、MAX、MIN、AVG、COUNT、SUM等。
就说一个知识点吧:条件判断里面包含组函数的必须使用 HVING 不能使用 WHERE:
----关注公众号,获取更多内容----
最新文章
- [poj1113][Wall] (水平序+graham算法 求凸包)
- 什么是hasLayout?
- js-函数eval
- ASP.NET 5探险(7):使用混合型控制器方便实现单页应用
- ASP.NET MVC中分析淘宝网页发生乱码标题搞定方法
- 自动构建Makefile(1)--C/C++编译流程&;Makefile规则简介
- C++ 多继承和虚继承的内存布局(转)
- ecos资源探测器
- Scrapyd 改进第二步: Web Interface 添加 STOP 和 START 超链接, 一键调用 Scrapyd API
- 浮点数乘积的取整intval,以及高精度函数bcmath的使用
- WPF设计の不规则窗体
- 错误	1	“Entities.PlanPrjEntity.PlanPrjs”不可访问,因为它受保护级别限制
- com.mysql.jdbc.Driver 与 org.gjt.mm.mysql.Driver的区别
- Newtonsoft.Json反序列化(Deserialize)出错:Bad JSON escape sequence
- redis服务部署脚本
- 【解决问题】failed: java.lang.RuntimeException: org.openqa.selenium.WebDriverException: Unexpected error launching Internet Explorer.
- js跟随的广告
- VMware esxi 5.5装机方案
- jsp servlet 进行基于js的用户验证
- Win10系统下VirtualBox虚拟机初体验