Oracle的基本学习(三)—函数
一、字符函数
1.大小写控制函数
--lower:使字母变为小写--
--upper:使字母变为大写--
--initcap:使字符的第一个字母变为大写--
select
lower('ABC'),
upper('sql'),
initcap('HeLlo SQL')
from dual;
select employee_id, department_id,last_name, salary
from employees
where lower(last_name)='king';
2.字符控制函数
concat(str1,str2)
连接两个字符串。
substr(str,index,n)
截取字符串,从index开始(sql字符串下标第一个为1),截取n个长度。
length(str)
获取str的长度。
instr(str1,str2)
str2在str1首次出现的索引,如果不存在返回0。
lpad(str1,len,str2)
设置str1长度为len,如果长度不够在左边用str2补齐。
rpad(str1,len,str2)
设置str1长度为len,如果长度不够在右边用str2补齐。
trim(str1,from str2)
去掉str2中的st1,仅仅是首部和尾部的。
replace(str,str1,str2)
把str中的str1替换成str2,全部都替换。
select
concat('hello','sql'),
substr('hellosql',2,4),
instr('HelloWorld','o'),
length('hello sql')
from dual;
select employee_id,last_name, salary,lpad(salary,10,'*')
from employees
where department_id=80;
--trim:仅仅去掉首位和尾部的--
--replace:替换所有的--
select
trim('A' from 'AABBAACCAA'),
replace('AABBAACCAA','A','M')
from dual;
二、数字函数
round: 四舍五入函数。
trunc: 截断函数。
mod: 求余函数。
--round:四舍五入--
select
round(435.45,1),
round(435.45),
round(435.45,-1)
from dual;
--trunc:截断--
select
trunc(435.45,1),
trunc(435.45),
trunc(435.45,-1)
from dual;
三、日期相关函数
to_char(date,'format_model')
对日期的转换。
select to_char(sysdate,'yyyy-mm-dd hh:mi:ss')
from dual;
四、通用函数
nvl函数
格式: nvl(E1,E2)
解释: 如果E1为NULL,则函数返回E2,否则就返回E1。
nvl2函数
格式: nvl2(E1,E2,E3)
解释: 如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。
nullif函数
格式: nullif(exp1,exp2)
解释: 如果两个表达式不相等,NULLIF 返回第一个exp1的值。如果两个表达式相等,NULLIF 返回空值NULL。
coalesce函数
格式: coalesce(exp1,exp2,,,,,)
解释: 依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。
case表达式
SELECT last_name,
job_id,
salary,
department_id,
CASE department_id
WHEN 10 THEN
10 * salary
WHEN 20 THEN
20 * salary
WHEN 30 THEN
30 * salary
ELSE
salary
END new_salary
FROM employees
WHERE department_id IN (10, 20, 30);
decode函数
SELECT last_name,
job_id,
salary,
department_id,
DECODE(department_id,
10,10 * salary,
20,20 * salary,
30,40 * salary,
salary) new_salary
FROM employees
WHERE department_id IN (10, 20, 30);
Oracle的基本学习(三)—函数的更多相关文章
- Oracle 数据库基础学习 (三) Oracle 四个表结构
Oracle 四个表的 emp dept salgrade bunus 的结构,记住有利于后期SQL语句的学习 雇员表(emp) No. 字段 类型 描述 1 empno NUMBER(4) 表示 ...
- 【软件实施面试】MySQL和Oracle联合查询以及聚合函数面试总结
软件实施面试系列文章第二弹,MySQL和Oracle联合查询以及聚合函数的面试总结.放眼望去全是MySQL,就不能来点Oracle吗?之前面过不少公司,也做过不少笔试题,现在已经很少做笔试题了.你肚子 ...
- oracle中的nvl(), nvl2()函数
nvl()函数是oracle/plpgsql中的一个函数,格式为:nvl(string1, replace_with) 功能:如果string1 位null,那么nvl()函数返回replace_wi ...
- TweenMax动画库学习(三)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) ...
- C++学习之函数指针
C++学习之函数指针 和数据项类似,函数也有地址,函数的地址是存储在机器语言代码的内存的开始地址.通常,这些地址对用户而言,不重要也没什么用处,但对程序而言,它却很有用. 一.函数 ...
- Oracle教程之学习笔记
Oracle教程之学习笔记... ----------------------------------- Oracle教程:---学习笔记: ============================= ...
- 4.机器学习——统计学习三要素与最大似然估计、最大后验概率估计及L1、L2正则化
1.前言 之前我一直对于“最大似然估计”犯迷糊,今天在看了陶轻松.忆臻.nebulaf91等人的博客以及李航老师的<统计学习方法>后,豁然开朗,于是在此记下一些心得体会. “最大似然估计” ...
- DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件
DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件 本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...
- [ZZ] 深度学习三巨头之一来清华演讲了,你只需要知道这7点
深度学习三巨头之一来清华演讲了,你只需要知道这7点 http://wemedia.ifeng.com/10939074/wemedia.shtml Yann LeCun还提到了一项FAIR开发的,用于 ...
随机推荐
- OpenCv 2.4.9 (二) 核心函数
前言 经过前面一节的怎样读取图片,我们可以做一些有趣的图像变换,下面我们首先介绍使用遍历的方法实现,然后我们使用内置的函数实现. 矩阵掩码实现 矩阵掩码,和卷积神经网络中的卷积类似.一个例子如下: 现 ...
- 基于Bootstrap设计网页
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- Form表单中method="post/get'的区别
Form提供了两种数据传输的方式--get和post.虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响.虽然为了方便的得到变量值,Web容器已经屏蔽了二者的一 ...
- 数据的增删改查(三层)<!--待补充-->
进行数据操作必然少了对数据的增删改查,用代码生成器生成的代码不是那么满意!方便在今后使用,这里就主要写“数据访问层(Dal)” 既然这里提到三层架构:有必要将三层内容在这里详细介绍一下(待补充) 注: ...
- 面向对象 "一"
1:面向对象不是所有情况都适用. 2面向对象编程 a:定义类 calss Foo: 注意顶一个类的时候首字母必须是大写 def (方法一)(self,bb) pass b:根据创建对象,创建和Foo实 ...
- 关于Response.redirect和Response.End出现线程中止异常的处理
最近做了一个项目其中使用了多线程获取POST过来的数据后再Response回复,但由于是多线程,在Response.End()的时候报出了异常: 2013-10-20 10:05:31,606 res ...
- swiper插件的使用demo
老习惯,废话不多说,直接上代码 1.PC端,swiper2,滑动效果 先要引入idangerous.swiper2.7.6.css和idangerous.swiper2.7.6.js(需要先引入jqu ...
- JavaWeb与Asp.net工作原理比较分析
一.概述 不管是什么语言开发的web应用程序,都是在解决一个问题,那就是用户输入url怎么把对应的页面响应出来,如何通过url映射到响应的类,由于自己做asp.net的时间也不短了,还算是对asp.n ...
- 使用Task的一些知识优化了一下同事的多线程协作取消的一串代码
最近在看一个同事的代码,代码的本意是在main方法中开启10个线程,用这10个线程来处理一批业务逻辑,在某一时刻当你命令console退出的时候,这个 时候不是立即让console退出,而是需要等待1 ...
- 图解Javascript——变量对象和活动对象
span { line-height: 1.5 } 这是由一段代码引发的思考: var laterDeclaredVar = 'I am a global variable ...'; (functi ...