oracle单行函数

单行函数的语法

Function_name(column|expression, [arg1, arg2, ...])

参数说明:

Function_name   
函数名称

column          
列名

expression      
表达式

arg1,arg2,...   
参数

单行函数分类:

  • 字符函数:接收字符输入并返回字符或数值
  • 数值函数:接受数据输入并返回数值
  • 日期函数:对日期型数据进行操作
  • 转换函数:从一种数据类型转换为另外一种数据类型
  • 通用函数:NVL 函数 DECODE 函数

字符函数

-- lower() 将字符串转化为小写
select ename from emp where lower(ename) like '%a%';
select ename from emp where ename like '%a%'or ename like '%A%'; 

-- upper() 将字符串转化为大写
select ename from emp where upper(ename) like '%A%';

-- initcap() 将单词的首字母转为大写,其余字母转为小写
select initcap('HELLO WORLD') from dual;
select initcap(ename) from emp;

-- concat() 将字符串相连
select concat('hello', 'world') from dual;
select 'hello'||'world' from dual;

-- substr() 字符串截取
select ename, substr(ename, 1, 2), substr(ename, -3, 3) from emp;

-- length() 计算长度
select length('abcdef'), length('12345678') from dual;

-- replace() 字符串替换
select substr('hello', 3, 2) 取子串, length('hello') 长度, replace('hello', 'l', 'x') from dual;

-- chr() 将数字转为其对应的ascii码字符
select chr(65), chr(66) from dual;

-- ascii() 将对应的字符转为其ascii码对应的数字
select ascii('A'), ascii('B') from dual;

数值函数

-- round() 四舍五入,默认精确到个位,指定精确到小数点后几位
select round(23.652) from dual;
select round(23.652, 1) from dual;
select round(23.652, -1) from dual;

-- trunc() 截断小数位数,按指定的精度截断小数或整数(不进行四舍五入运算)
select trunc(25.46, 1) from dual;
select round(25.46, 1) from dual;

select trunc(25.46, -1) from dual;
select round(25.46, -1) from dual;

-- mod() 对一个数取余数
select mod(10, 3) from dual;

日期函数

Oracle中提供了很多与日期操作相关的函数,主要包括加减。

对日期进行加减运算的时候要遵循一些规则

  日期-数字=日期

  日期+数字=日期

  日期-日期=数字  表示两个日期之间相隔的天数

-- 显示10部门雇员进入公司的星期数
select empno, ename, deptno, round((sysdate - hiredate)/7) from emp where deptno = 10;

-- Months_between() 返回两个给定日期之间的相隔的月数
-- 查询10部门的雇员工作的月数
select deptno, empno, ename, months_between(sysdate, hiredate) from emp where deptno = 10;
select deptno, empno, ename, round(months_between(sysdate, hiredate)) from emp where deptno = 10;

-- add_months() 返回给定的日期加上指定的月数后的日期
select empno, ename, hiredate, add_months(hiredate, 5), add_months(hiredate, -1) from emp;

-- next_day() 指定日期下一个指定的星期几是哪一天
select sysdate, next_day(sysdate, '星期一') from dual;

-- last_day() 求出给定日期所在月的最后一个日期
select last_day(sysdate) from dual;
select last_day(to_date('2015-02-13', 'yyyy-mm-dd')) from dual;

转换函数

to_char()在使用的时候要用到格式控制的符,格式控制符不区分大小写字母

年:Y,年份为四位数,故应写成:YYYY或yyyy

月:M,月份为两位数,故应写成:MM或mm

日:D,日为两位数,故应写成:DD或dd

-- to_char() 将数字或日期转化为字符串
-- 对系统的日期格式显示方式进行转换,使其按中国日期习惯显示,即”YYYY-MM-DD”
select empno, ename, to_char(hiredate, 'yyyy-mm-dd') from emp;

-- fm 去掉个位数的日、月前面的0
select empno, ename, to_char(hiredate, 'fmyyyy-mm-dd') from emp;

-- 对入职日期按照年、月、日进行拆分
select empno,ename,to_char(hiredate,'yyyy') year,
       to_char(hiredate,'mm') month,
       to_char(hiredate,'dd') day
from emp
select empno,ename,
       to_char(hiredate,'yyyy')||'年'||to_char(hiredate,'mm')||'月'||to_char(hiredate,'dd')||'日'
from emp

-- to_char() 对数字进行格式化
select empno,ename,to_char(sal,'999,999,999') from emp;
select empno,ename,to_char(sal,'000,000,000') from emp;
select empno,ename,to_char(sal,'$99,999') from emp;

-- to_number() 将当前的固定格式的字符串转换为数字
select sal from emp where sal>to_number('$1,250.00','$9,999.99');
select to_number('300') + to_number('400') from dual;

-- to_date() 将当前固定格式的字符串转化为日期
-- 查询1981-1-1 以后入职的员工
select ename, hiredate from emp
where hiredate >= to_date('1981-1-1', 'yyyy-mm-dd');
select ename, hiredate from emp
where hiredate >= date '1981-1-1';

通用函数

decode(),此函数有类似于If...elseif...else 语句,用于对多分支的判断

语法:
decode(col/expression,search1,result1[,search2,result2,……][,default])

说明:

Col/expression:为列名或表达式

Search1,search2……searchI:为多种可能出现的条件

Result1,result2……resulti:当满足对应的shearch后为返回值

-- nvl() 对为空值的字段进行处理
-- 求每个雇员的年薪(包括奖金)
select empno, ename, (sal+comm)*12 from emp;
select empno,ename,sal,nvl(comm,0) new_comm,(sal+nvl(comm,0))*12 incom from emp;

-- docode() 分支判断
select decode(2,1,'内容1',2,'内容2',3,'内容3') from dual;
select  empno 雇员编号,ename 雇员姓名,
   decode(job,'CLERK','业务员','SALESMAN','销售人员',
              'MANAGER','经理','ANALYST','分析师','PRESIDENT','总裁') 工作
from emp

友情链接:oracle简单查询,限定查询及排序

时间: 2024-08-26 05:40:41

oracle单行函数的相关文章

Oracle单行函数笔记

Oracle中单行函数的分类:1.字符函数substr():字符串截取select substr('我爱你,你知道么?',0,4) from dual执行结果:我爱你,length函数:字符串长度select length('我爱你,你知道么?') from dual执行结果:9Replace()函数:替换指定字符select replace('我爱你,你知道么?','你','的是他') from dual执行结果:我爱的是他,的是他知道么?upper函数:转字母大写select upper('

Oracle单行函数基础运用

单行函数 整个SQL的精髓:select语句+单行函数(背) 字符串函数 常用的处理字符串的函数有如下: No. 函数名 含义 1 UPPER(c1)  upper 将字符串全部转为大写 2 LOWER(c1)   lower 将字符串全部转为小写 3 INITCAP(c1)   initcap 将字符串的首字母转为大写 4 LENGTHC(c1)  length 返回字符串的长度 5 SUBSTR(c1,n1[,n2])  substr 取得字符串的子串,n1是指定起始索引,n2是指定取多少个

Oracle——单行函数

两种 SQL 函数 单行函数 字符函数 大小写控制函数 SELECT employee_id, last_name, department_id FROM employees WHERE last_name = 'higgins'; no rows selected SELECT employee_id, last_name, department_id FROM employees WHERE LOWER(last_name) = 'higgins'; 字符控制函数 注意: SQL语法中的索引

oracle 单行函数

1.字符函数 select lower('Hello World')  转小写 , upper('hello world ') 转大写,initcap('hello world') 首字母大写 from dual; 2.字符控制函数 substr(a,b) 从a中第b位开始取  select sub('123457890' ,2) 子串 from dual; substr(a,b,c) 从a中第b位开始取c位 instr(a,b) 从a串中找b  找到返回位置  从1开始  select ins

Oracle单行函数之字符函数

本次主要总结了以下字符函数的作用及使用方法: 函 数说 明 ASCII返回对应字符的十进制值 CHR给出十进制返回字符 CONCAT拼接两个字符串,与 || 相同 INITCAT将字符串的第一个字母变为大写 INSTR找出某个字符串的位置 INSTRB找出某个字符串的位置和字节数 LENGTH以字符给出字符串的长度 LENGTHB以字节给出字符串的长度 LOWER将字符串转换成小写 LPAD使用指定的字符在字符的左边填充 LTRIM在左边裁剪掉指定的字符 RPAD使用指定的字符在字符的右边填充

oracle单行函数 之 通用函数

NVL()函数,处理null. Decode()函数,:多数值判断 Decode(数值 \ 列,判断值1,显示值1,判断值2,显示值2)若是判断值不包含的,则显示为空 Decode()函数非常类似程序中的if else语句,唯一不同的是函数判断的是数值,而不是逻辑条件 案例:select  empro,empname,job,decode(job,'clerk','办事员','saleman','销售员'......)

oracle单行函数之类型转换

oracle数据类型转换:显示转换盒隐式转换 oracle自动完成转换 需要进行显式转换 l使用双引号向日期中添加字符 1 SQL> select to_char(sysdate, 'yyyy-mm-dd day') from dual; 2 3 TO_CHAR(SYSDATE,'YYYY-MM-DDDAY 4 ------------------------------ 5 2014-12-23 星期二 6 7 SQL> select to_char(sysdate,'"今天是&q

oracle单行函数之数字函数

round--四舍五入函数 trunc--截断函数 mod--求余函数 round和trunc除了可以操作数字外还可以操作日期. Demo 1 SQL> select round(45.926,2),round(45.926,1),round(45.926,0),round(45.926),round(45.926,-1),round(45.926,-2) 2 2 from dual 3 3 ; 4 5 ROUND(45.926,2) ROUND(45.926,1) ROUND(45.926,0

oracle单行函数--数学函数

数字函数 函数名 函数功能 abs 返回指定值得绝对值 ceil 返回大于或等于给出数字的最小整数 floor 取整 mod(n1,n2) 返回一个n1除以n2的余数 power(n1,n2) 返回n1,的n2次方 sign 取数字n的符号,大于0返回1,小于0返回-1,等于0返回0 sqrt 返回数字的根 round 按照指定的精度四舍五入 trunc 按照指定精度截取一个数 *round:四舍五入 例:round(25.328) 结果:25 round(25.328,2) 结果:25.33