SQL基础知识-单行函数

简单函数

搜索通配符%

 SELECT * FROM dual WHERE a LIKE '%\%%' ESCAPE '\'

排序

ORDER BY…… ASC	升序
ORDER BY……DESC	倒序

大小写转换函数

LOWER('SQL Course')	sql course		大写转换为小写
UPPER('SQL Course')	SQL COURSE		小写转换为大写
INITCAP('SQL Course')	Sql Course		单词首字母转换为大写

字符串操作函数

CONCAT('Hello','World') HelloWorld	字符拼接
SUBSTR('HelloWorld;,1,5) Hello		字符截断
LENGTH(‘HelloWorld’)10			计算字符串长度
INSTR('HelloWorld',6) W			取字符串中的固定位字符
LPAD('24000',10,'*') *****24000		从左开始填充字符串至固定长度
RPAD('24000',10,'*') 24000*****		从右开始填充字符串至固定长度
TRIM('H' FROM 'HelloWorld') elloWorld	去除字符串指定字符
TRIM('Hello World   ') Hello World	去除字符串前后的空格

数字操作函数

ROUND(45.926,2) 45.93	四舍五入函数
TRUNC(45.926,2) 45.92	向下舍入
MOD(1600,300) 100	取余数

日期操作函数

在Oracle中常见的日期格式有:
YYYY-MM-DD
MM-DD-YYYY
DD-MMM-YY

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')			8-Sep-95	计算给定日期之后的下一个周五的时间
NEXT_DAY('01-SEP-95',1)				3-Sep-95	计算给定日期之后的下一周(以周日为一周的初始)的第一天
NEXT_DAY('1995-09-01',1)			ORA-01861:literal does not match format string
NEXT_DAY(to_date('1995-09-01','YYYY-MM-DD'),1))	3-Sep-95
LAST_DAY('01-FEB-95')				28-Feb-95	计算给定日期该月的最后一天
ROUND('25-JUL-95','MONTH')			1-Aug-95
ROUND('25-JUL-95' ,'YEAR')			1-Jan-96
TRUNC('25-JUL-95' ,'MONTH')			1-Jul-95
TRUNC('25-JUL-95','YEAR')			1-Jan-95

数据类型转换

在表达式中Oracle常会自动进行转换(隐式转换):
从CHAR/VARCHAR到NUMBER,从CHAR/VARCHAR到DATE(三位英文字母格式的)

数据类型转换-日期到字符串转换

TO_CHAR(date,'format_model')
日期格式化元素意义
YYYY4位数字表示的年份
YEAR英文表示的年份
MM2位数字表示的月份
MONTH英文表示的月份
MON3个字母描述的英文月份简称
DD2位数字表示的日期
DAY英文描述的星期几
DY3个字母描述的星期几简称
HH24:MI:SS AM时分秒格式化
DDspth英文描述的月中第几天

数据类型转换-数字到字符串转换

TO_CHAR(number,'format_model');
数字格式化元素意义
9表示一个数字
0强制显示0
$放一个美元占位符
L放一个美元占位符
.显示一个小数点占位符
,显示一个千分位占位符

数据类型转换-字符串到数字转换

TO_NUMBER(char[,'format_model']);
select TO_NUMBER('4456') from dual;					正确
select TO_NUMBER('$4,456') from dual;					错误
select TO_NUMBER('$4,456','$9,999' )from dual;				正确
select TO_NUMBER('$4,456,455.000','$9,999.999' )from dual;		错误,后面的转换长度必须比前面的指定字符长
select TO_NUMBER('$4,456,455.000','$9,999,999,999,999.999' )from dual;	正确

其它常用单行函数

NVL (expr1, expr2)			如果expr1为空,则返回expr2
NVL2 (expr1, expr2, expr3)		如果expr1为空,则返回expr3(第2个结果)否则返回expr2
NULLIF (expr1, expr2)			如果expr1和expr2相等,则返回空
COALESCE (expr1, expr2, ..., exprn)	如果expr1不为空,则返回expr1,结束;否则计算expr2,直到找到一个不为NULL的值 或者如果全部为NULL,也只能返回NULL了

条件表达式-CASE

CASE expr WHEN comparison_expr1 THEN return_expr1
[WHEN comparison_expr2 THEN return_expr2
WHEN comparison_expr3 THEN return_expr3
ELSE else_expr]
END

条件表达式-DECODE

DECODE (expr,comparison_expr1,return_expr1,
[comparison_expr2,return_expr2,comparison_expr3,returan_expr3],else_expr)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值