SQL基础–基础函数
数值类
函数名 | 功能 | 备注 |
---|
ROUND(NUM,n) | 四舍五入 | n为小数点后位数,可为负 |
TRUNC(NUM,n) | 直接截取 | n为小数点后位数,可为负 |
MOD(a,b) | 取余 | |
字符类
1 .大小写转换
函数名 | 功能 | 备注 |
---|
LOWER(str) | 转换成小写 | |
UPPER(str) | 转换为大写 | |
INITCAP(str) | 首字母大写 | |
2 .字符串操作
函数名 | 功能 | 备注 |
---|
CONCAT(STR1,STR2) | 字符串连接 | |
SUBSTR(STR,START[,END]) | 取子串 | start可为负 |
INSTR(STR1,SUBSTR[,strat,times]) | 查找字符串 | times第几次出现 |
REPLACE(STR1,oldSTR[,newSTR]) | 替换字符串 | newSTR参数不存在,则删除子串 |
TRIM(STR/STR1 FROM STR2) | 去除首尾空格或特定字符串 | |
LPAD(STR,padded_length[,padSTR]) | 左填充 | |
RPAD(STR,padded_length[,padSTR]) | 右填充 | |
LENGTH(STR) | 字符数 | 中文也算一个 |
注:LENGTHB,SUNSTRB对字节操作,还有TRANSLATE的使用
日期类
函数名 | 功能 | 备注 |
---|
MONTHS_BETWEEN(DATE1,DATE2) | 月份间隔 | DATE可为字符串 |
ADD_MONTHS(DATE,months) | 几个月后日期 | 日期直接加1,增加一天 |
| | 2月会自动转换为最大天数 |
NEXT_DAY(DATE,DayNum/DayName) | 接下来的某一天 | 可指定数字或具体名字 |
LAST_DAY(DATE) | 当月最后一天 | |
ROUND(DATE,mode) | 四舍五入取日期 | mode常用:YYYY,MONTH,DAY,DD |
TRUNC(DATE,mode) | 截取日期 | mode常用:YYYY,MONTH,DAY,DD |
DAY在oracle中指一周中的天数,DD指一个月中的天数
格式化类(转换)
函数名 | 功能 | 备注 |
---|
to_char(NUM/DATE[,mode]) | 转换成字符串 | 数字格式化’FM999.999.999.00’ |
to_number(str[,mode]) | 转换数字 | 金额格式化’$999’ |
to_date(str[,mode]) | 转换成日期 | |
条件类
函数名 | 功能 | 备注 |
---|
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 exp WHEN…ELSE…END | CASE条件 | |
DECODE(exp,search1,result1…..[,default]) | DECODE条件 | |