Oracle函数:
nvl(test,exp1):当test为空时,取exp1的值,否则就取test的值
select nvl('abc','bb') from dual; --123
select nvl(null,'bb') from dual; --bb
nvl2(test,exp1,exp2):当test为空时,取exp2的值,否则就去exp1的值
select nvl2('abc','a','b') from dual; --a(即使exp1为null,打印的结果也是exp1的值,即null)
select nvl2(null,'a','b') from dual; --b
to_char(exp1,exp2):日期或数字转为字符串
select to_char(sysdate,'yyyy-mm-dd') from dual;(sysdate是取得当前时间)
to_date(exp1,exp2):字符串转为日期
select to_date('2022-1-1','yyyy-mm-dd') from dual;
lengthb(exp1):返回字符串exp1的长度
select lengthb('aaa哈哈') from dual;
trunc:整除函数,向下取整
select trunc(10/3) from dual; --3
MySQL函数:
ifnull(exp1,exp2):如果exp1为空,则取exp1的值,否则取exp2的值
select ifnull (1,0) --1
select ifnull(null,0) --0
date_format(exp1,exp2):日期或数字转为字符串
select date_format(sysdate(),'%Y-%m-%d') from dual;
str_to_date(exp1,exp2):字符串转为日期
select str_to_date(sysdate(),'%Y-%m-%d') from dual; (sysdate在MySQL中使用时要添加(),在Oracle中使用时不需要添加)
length(exp1):返回字符串exp1的长度
select length('aaaaa') from dual;
通用:
ltrim(str):删除字符串左边的空格
rtim(str):删除字符串右边的空格
trim(str):删除字符串两边的空格
select trim(leading '想要删除的字符' from '字符串') from 表名 删除左边指定字符
select trim(trailing '想要删除的字符' from '字符串') from 表名 删除右边指定字符
select trim(both '想要删除的字符' from '字符串') from 表名 删除两边指定字符
substr('exp',begin,len):截取函数,从begin开始截取,截取长度为len
select substr('123456789',2,2) --23
select substr('123456789',-3,2) --78(负号表示从后面开始截取)
avg(exp):求某一列的平均值
select avg(exp) from table
max(exp):求某一列的最大值
select max(exp) from table
min(exp):求某一列的最小值
select min(exp) from table
sum(exp):求某一列的总和
select sum(exp) from table
abs(exp):返回绝对值
select abs(-1) from dual
标签:exp,--,exp1,基础,dual,字符串,select,函数 From: https://www.cnblogs.com/yy818/p/16422474.html