Oracle基础函数
- --1,大小写控制函数
- SELECT LOWER('Hello World') 转小写,
- UPPER('Hello World') 转大写,
- INITCAP('hello world') 首字母大写
- FROM DUAL;
- --2,字符控制函数
- SELECT CONCAT('Hello','World') 字符连接
- FROM DUAL;
- --3,求字母串中的某个子串
- SELECT SUBSTR('Hello World',3) FROM DUAL;
- --截取从第3个字符到末尾
- SELECT SUBSTR('Hello World',3,4) FROM DUAL;
- --截取从第3个字符连续4个字符
- --4,字符数和字节数
- SELECT LENGTH('China') 字符数,
- LENGTHB('China') 字节数
- FROM DUAL;
- --5,在母串中,查找子串的位置
- SELECT INSTR('Hello World','ll')
- FROM DUAL;
- --6,左右填充,将abcd用*填充到10位
- SELECT LPAD('abcd',10,'*') 左填充,
- RPAD('abcd',10,'*') 右填充
- FROM DUAL;
- --7,去掉字符串前后指定的字符
- SELECT TRIM('H' FROM 'Hello WorldH')
- FROM DUAL;
- --8,字符串替换函数
- SELECT REPLACE('Hello World','l','*')
- FROM DUAL;
- --9,数字函数
- SELECT ROUND(45.926,2) 四舍五入,
- TRUNC(45.926,2) 截断,
- MOD(1600,300) 求余
- FROM DUAL;
- --10,ROUND函数
- SELECT ROUND(45.923,0) 整数位,
- ROUND(45.923,-1) 十位,
- ROUND(45.923,-2) 百位
- FROM DUAL;
- --11,显示当前日期
- SELECT SYSDATE
- FROM DUAL;
- --12,指定格式显示时间
- SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')
- FROM DUAL;
- --13,显示昨天,今天和明天,加减数字
- SELECT SYSDATE - 1 昨天,
- SYSDATE 今天,
- SYSDATE + 1 明天
- FROM DUAL;
- --14,两个日期相减,结果为相差的天数,查询员工
- --信息,显示员工工龄,两个日期不能相加
- SELECT EMPNO,ENAME,SYSDATE - HIREDATE 天
- FROM EMP;
- --15,查询员工信息,显示员工工龄,分别按照天,
- --星期,月显示
- SELECT EMPNO,ENAME,SYSDATE - HIREDATE 天,
- (SYSDATE - HIREDATE)/7 星期, (SYSDATE - HIREDATE)/30 月
- FROM EMP;
- --16,两个日期相差的月数
- SELECT (SYSDATE-HIREDATE)/30 方式一,
- MONTHS_BETWEEN(SYSDATE,HIREDATE) 方式二
- FROM EMP;
- --17,在指定日期上加上若干月
- SELECT ADD_MONTHS(SYSDATE,1) 下个月,
- ADD_MONTHS(SYSDATE,123) "123个月后"
- FROM DUAL;
- --18,某个日期当月的最后一天
- SELECT LAST_DAY(SYSDATE)
- FROM DUAL;
- --19,下周六
- SELECT NEXT_DAY(SYSDATE,'星期五')
- FROM DUAL;
- --20,对日期进行四舍五入
- SELECT ROUND(SYSDATE,'MONTH') 月,
- ROUND(SYSDATE,'YEAR')
- FROM DUAL;
- --21,对日期进行截断
- SELECT TRUNC(SYSDATE,'MONTH') 月,
- ROUND(SYSDATE,'YEAR')
- FROM DUAL;
- --22,日期格式
- SELECT *
- FROM EMP
- WHERE HIREDATE =
- TO_DATE('1982-01-23','YYYY-MM-DD');
- --23,以指定格式当前日期
- SELECT TO_CHAR(SYSDATE,
- 'YYYY-MM-DD HH24:MI:SS"今天是"DAY')
- FROM DUAL;
- --24,查询员工信息,显示员工的编号,姓名,月薪,
- --要求有货币代码(L),千位符(,),小数点
- SELECT EMPNO,ENAME,
- TO_CHAR(SAL,'L9,999.99')
- FROM EMP;
- --25,NVL(EXP1,EXP2):当exp1为空时,返回exp2
- --NUL2(EXP1,EXP2,EXP3):当exp1有值,返回exp2;
- --否则返回exp3
- SELECT ENAME,SAL*12+NVL2(COMM,COMM,0) 年收入
- FROM EMP;
- --26,NULLIF(EXP1,EXP2),如果exp1=exp2,返回null
- --否则exp1
- SELECT NULLIF('ABC','ABC'),NULLIF('A','AG')
- FROM DUAL;
- --27,找到参数列表中,第一个不为空的值
- SELECT ENAME,COMM,SAL,COALESCE(COMM,SAL)
- FROM EMP;
- --28,给员工涨工资,根据职位涨,总裁涨1000,
- --经理涨600,其他员工涨400
- SELECT ENAME,JOB,SAL 涨前工资,
- CASE JOB
- WHEN 'PRESIDENT' THEN SAL + 1000
- WHEN 'MANAGER' THEN SAL + 600
- ELSE SAL + 400
- END
- 涨后工资
- FROM EMP;
- --
- SELECT ENAME,JOB,SAL 涨前工资,
- DECODE(JOB,'PRESIDENT',SAL + 1000,
- 'MANAGER',SAL + 600, SAL + 400) 涨后工资
- FROM EMP;
- --转换函数(Conversion Functions)
- --转换函数将指定字符从一种类型转换为另一种
- --通常这类函数遵循如下惯例:函数名称后面
- --跟着转换类型以及输出类型。
- --29,TO_CHAR(C):将NCHAR,NVARCHAR2,CLOB,NCLOB
- --类型转换为CHAR类型
- SELECT TO_CHAR('AABBCC')
- FROM DUAL;
- --30,TO_CHAR(D[,FMT]):将指定的时间(DATE,TIMESTAMP,
- --TIMESTAMP WITH TIME ZONE)按照指定格式转换为
- --VARCHAR2类型。
- SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')
- FROM DUAL;
- --31,TO_CHAR(N,[,FMT])将指定数值n按照指定格式fmt
- --转换为varchar2类型并返回
- SELECT TO_CHAR(-100,'L999G99D99MI')
- FROM DUAL;
- --32,TO_DATE(C[,FMT[,NLS]])将char,nchar,
- --varchar2,nvarchar2转换为日期类型,如果fmt
- --参数不为空,则按照fmt中指定格式进行转换。
- --注意这里的fmt参数,如果ftm为’J‘,则表示按照公元制
- --(Julian day)转换,c则必须为大于0并小于5373484
- --的正整数。为什么公元制的化,c的值必须不大于5373484
- --呢?因为Oracle的DATE类型的取值范围是公元前
- --4712年1月1日至公元9999年12月31日。
- SELECT TO_DATE(2454334,'J')
- FROM DUAL;
- --33,TO_NUMBER(C,[,FMT[,NLS]])将char,nchar,
- --varchar2,nvarchar2型字符串按照fmt中指定格式
- --转换为数值类型并返回。
- SELECT TO_NUMBER('-100.00','9G999D99')
- FROM DUAL;
- --34,DECODE(EXP,S1,R1,S2,R2,R[,DEF])可以
- --把它理解成一个增强型的if else,只不过它
- --并不通过多行语句,而是在一个函数内部实现if
- --else的功能。exp作为初始参数,s作为对比值,
- --相同则返回r,如果s有多个,则持续遍历所有s,
- --知道某个条件为真为止,否则返回默认值def(
- --如果指定了的话),如果没有默认值,并且前面
- --的对比也都没有为真,则返回空。毫无疑问,
- --decode是个非常重要的函数,在实现行转列等功能是,
- --都会用到。
- SELECT DECODE('a2','a1','true1','a2','true2',
- 'default')
- FROM DUAL;
- --35,GREATEST(N1,N2,...N)返回序列中的最大值
- SELECT GREATEST(14,3,5,3)
- FROM DUAL;
- --36,LEAST(N1,N2,...N)返回序列中最小值
- SELECT LEAST(12,3,5,5)
- FROM DUAL;
- --37,NULLIF(C1,C2)逻辑等于CASE WHEN C1 = C2
- --THEN NULL ELSE C1 END
- SELECT NULLIF('A','B'),NULLIF('A','A')
- FROM DUAL;
- --38,NVL(C1,C2)逻辑等价于IF C1 IS NULL THEN
- --C2 ELSE C1 END,C1,C2可以是任何类型,如果两者
- --类型不同,则oracle会自动将c2转换为c1的类型
- SELECT NVL(NULL,'12')
- FROM DUAL;
- --39,NVL2(C1,C2,C3)如果c1非空则返回c2,如果c1为
- --空则返回c3
- SELECT NVL2('A','B','C') ,
- NVL2(NULL,'B','C')
- FROM DUAL;
- --40,SYS_CONNECT_BY_PATH(COL,C)该函数只能应用于
- --树状查询,返回通过c1连接的从根节点的路径,该
- --函数必须与connect by子句共同使用
Oracle基础函数的更多相关文章
- oracle基础函数--decode
含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN R ...
- SQL操作数据——SQL组成,查询基础语法,where,Oracle常用函数等
SQL组成 DML数据操作语言 DCL数据控制语言 DQL数据查询语言 DDL数据定义语言 查询基础语法 记录筛选 where 子句 记录筛选 where 子句 实例练习 实例练习 Select语句中 ...
- Oracle分析函数——函数列表
--------------聚合函数 SUM :该函数计算组中表达式的累积和 MIN :在一个组中的数据窗口中查找表达式的最小值 MAX :在一个组中的数据窗口中查找表达式的最大值 AVG :用于计算 ...
- 【转】【CUBE】Oracle分组函数之CUBE魅力
http://blog.itpub.net/519536/viewspace-610997/ Oracle的CUBE与ROLLUP功能很相似,也是在数据统计分析领域的一把好手. 关于ROLLUP的查 ...
- (2.16)Mysql之SQL基础——函数
(2.16)Mysql之SQL基础——函数 关键词:mysql函数,mysql自定义函数,mysql聚合函数,mysql字符串函数,mysql数值函数 1.自定义函数 -- (1)一般形式 creat ...
- Oracle基础了解
数据库: 关系型数据库 select * from 表名 非关系型数据库(做不到复杂查询) 以对象的形式进行存储 {"aaa":"ccc"}---键值对 ora ...
- Oracle分组函数之CUBE魅力
Oracle的CUBE与ROLLUP功能很相似,也是在数据统计分析领域的一把好手. 关于ROLLUP的查询统计功能请参考文章<Oracle分组函数之ROLLUP魅力>(http://www ...
- Oracle基础篇--00引言
今天开始,复习oracle基础.主要是以前培训的时候的文档作为结构来梳理知识点,主要目的是把Oracle基础打的扎实点.后面要转做后台开发,或者工作中需要用到数据库知识时也不至于临时抱佛脚. 一直以来 ...
- Oracle基础学习笔记
Oracle基础学习笔记 最近找到一份实习工作,有点头疼的是,有阶段性考核,这...,实际想想看,大学期间只学过数据库原理,并没有针对某一数据库管理系统而系统的学习,这正好是一个机会,于是乎用了三天时 ...
随机推荐
- 解决 Mac Pro 用 Excel 打开 CSV 文件不能正常显示的问题
在做系统后台的时候,往往会有导出系统信息(如,用户信息)功能,一般导出为CSV文件. 先前在 Windows 下,导出的CSV文件用 Excel 打开能正常显示,可现在在 Mac 系统中,显示一团乱, ...
- MySQL也有潜规则 – Select 语句不加 Order By 如何排序?
今天遇到一个问题,有一个 Select 语句没有加 "Order By",返回的数据是不确定的. 这种问题碰到不止几次了.追根寻底, Select 语句如果不加 "Ord ...
- MyEclipse 自动提示设置
window --> Perferences--> General--> keys Content Assist默认的是Ctrl +space Content Assist快捷键设置 ...
- Redis学习笔记八:独立功能之二进制位数组
Redis 提供了 setbit.getbit.bitcount.bitop 四个命令用于处理二进制位数组. setbit 命令用于为位数组指定偏移量上的二进制位设置值,偏移量从 0 开始计数. ge ...
- iOS开发——UI进阶篇(三)自定义不等高cell,如何拿到cell的行高,自动计算cell高度,(有配图,无配图)微博案例
一.纯代码自定义不等高cell 废话不多说,直接来看下面这个例子先来看下微博的最终效果 首先创建一个继承UITableViewController的控制器@interface ViewControll ...
- .assetbundle 和.unity3d 好处
.assetbundle 资源文件 .unity3D 场景文件 xml.json 静态存储和 还原 AssetBuddle 优点:减小压缩包.资源更新.分开安装包和数据包.AssetBuddle加密 ...
- [HDU3709]Balanced Number
[HDU3709]Balanced Number 试题描述 A balanced number is a non-negative integer that can be balanced if a ...
- JQ库函数记忆要点
1.核心(1.核心函数2.对象访问3.数据缓存4.队列控制4.插件机制5.多库共存) 2.属性(1.属性2.css类3.HTML代码/文本/值) 3.选择器(表单,表单对象属性,基本,内容,子元素,层 ...
- Android 内容提供器(Content Provider)介绍
内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性.目前,使用内容 ...
- net-snmp-5.7.3配置编译安装
net-snmp-5.7.3配置编译安装 [TOC] 先看一下系统环境 o@o-pc:~/work/_snmp/net-snmp-5.7.3$ uname -a Linux o-pc 3.16.0-3 ...