暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 学习笔记_4

一块不冰的冰糖 2021-09-19
295

点击蓝字 关注我们


·新学习·新旅程NEW TERM


Oracle 学习笔记_4_ 单行函数


分类

# 字符函数

# 数字函数

# 日期函数

# 转换函数

# 其他函数

字符函数

# 包含 lower、upper、initcap、length、concat、substr、instr、rpad、lpad、trim、replace 

LOWER

# lower 转换为小写

-- 查询学生,将学生姓名全部转换为小写

    select lower (name) from stu;

UPPER

# upper 转化为大写

-- 查询学生,将学生姓名转化为大写

    select upper (name) from stu;

INITCAP

# initcap 首字母大写,其他字母转换成小写

-- 查询学生,将学生姓名开头为大写其余为小写

    select initcap (name) from stu;

LENGTH

# length 获取字符串长度

-- 查询学生姓名长度

    select length (name) from stu;

CONCAT

# 连接两个字符串

-- 将学生姓名与年龄合并成一个输出

    select concat (name,age) from stu;

SUBSTR

# substr 指定在某个字段从几取到几

-- 查询学生姓名的前两个字是什么

select substr(name,1,5) from stu;

INSTR

# instr 在字段中查找指定的字符,并返回所在的位置

-- 查询学生名字中含有‘t’的在第几位

    select instr(name,'t') from stu;

RPAD

# rpad 在右侧填充指定字符直到填充长度截止自己写的长度为止

-- 在学生姓名右侧填充@,长度为10

    select rpad(name,10,'@') from stu;

LPAD

# lpad 在左侧填充指定字符直到填充长度截止自己写的长度为止

-- 在学生姓名左侧填充#,长度为10

    select lpad(name,10,'@') from stu;

TRIM

# 去首尾空格,不会去除中间的空格

-- 查询学生年龄为20的学生信息

    select * from stu where age = trim('20 ');

REPLACE

# replace 将相同字符串替换为新的字符串

--  将学生姓名中的't'换为'mm'

    select replace(name,'t','mm') from stu;

数字函数

# 包含 round trunc mod

ROUND

# round 四舍五入,取小数位

-- 四舍五入45.623987小数后三位

    select round(45.623987,3) from dual;


结果:45.624

TRUNC

# trunc 截取指定小数位

-- 截取46.5892小数后两位

    select trunc(46.5892,2) from dual;


结果:46.58

MOD

# mod 取余

-- 求6/3的余

    select mod(6,4) from dual;


结果:2

日期函数

# 包含 months_between、add_months、next_day、last_day、round(另一种用法) trunc

MONTHS_BETWEEN

# months_between(c1,c2) 两个日期差多长时间

ADD_MONTHS

# add_months(c1,c2) 一个日期加减月得到新日期

NEXT_DAY

# next_day 取从当前日期开始遇到的第一个指定星期几的日期

LAST_DAY

# last_day 计算指定日期所在月份的最后一天日期

ROUND(D1,C1)

# round 按年或月四舍五入后取的新日期

C1对应表

最近0点

空 或 j

最近星期日

day/dy/d

最近月

month/mon/mm/rm

最近季

q

最近年初

syear/year/yyyy/yyy/yy/y

最近世纪初

cc/scc

TRUNC

# trunc 取的按年或月截取的新日期

转换函数

#  ● 隐含的类型转换

    ● 显式的类型转换


建议用显式转换,确保可靠性

转换方式

数值型

to_char()  ↓↑  number()

字符型

to_date()  ↓↑  to_char()

日期型

其他函数

# 包含 nvl nullif case decode 

NUL

# nul 将null转化为空格

语法“nul(C1,C2) 

如果C1为null,转化为C2

C1:字段 C2:转化的值

# nul2 可以返回自定值

语法:nul2(C,C1,C2) 

如果C不为null返回C1,为null返回C2

C:任意类型字段 C1:不为null返回值 

C2:为null返回值

NULLIF

# nullif(C1,C2) 比较两个表达式,相同返回空,不相等返回C1

CASE

# case...when...then...when...then...else...end

类似 if...else,当字段 如果怎样 返回什么 如果怎样 返回什么 否则怎样

-- 如果job为MANAGERG薪水上涨 10%,如果job为SALESMAN工资上涨 50%

    select empno, ename, job, sal, (case job when 'MANAGER' then sal*1.1 when 'SALESMAN' thensal*1.5 end) as newsal from emp;

DECODE

# decode 类似case...wen...then..end

decode(字段,内容1,输出1,内容2,输出2...)


简单的单行函数查询

2021/9/19


文章转载自一块不冰的冰糖,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论