一、to_date:字符串转换为日期型
【函数格式】:
to_date(sourceString[,formatParm[,nlsParm]])
【参数说明】:
sourceString:要进行转换处理的源字符串;
formatParm:格式参数,源字符串按照该参数的指定格式进行转换,是可选参数;
nlsParm:nls设置参数,是可选参数。
【样例展示】:
select to_date('2022/2/20 12:59:22','yyyy-mm-dd hh24:mi:ss') from dual; --返回:2022/2/20 12:59:22
select to_date('2022/2/20','yyyy-mm-dd') from dual; --返回:2022/2/20
select to_date('2022/2','yyyy-mm') from dual; --返回:2022/2/1
select to_date('2022','yyyy') from dual; --返回:2022/2/1
二、ABS绝对值函数
【函数格式】:
ABS(number)
【样例展示】:
ABS(-120) -- 120
三、to_number:字符型转换为数值型
【函数格式】:
to_number(sourceString[,formatParm[,nlsParm]])
【参数说明】:
sourceString:要进行转换处理的源字符串;
formatParm:格式参数,源字符串按照该参数的指定格式进行转换,是可选参数;
nlsParm:nls设置参数,是可选参数。
【样例展示】:
select to_number('123456')from dual; --返回:123456
select to_number('123456.12')from dual; --返回:123456.12
select to_number('00123456') from dual; --返回:123456
select to_number('$123.45','$999.99') from dual; --返回:123.45
select to_number('5,6,7.56','9,9,9.99') from dual; --返回:567.56
四、to_char:日期型或数值型转换为字符型
【函数格式】:
to_char(sourceValue[,formatParm[,nlsParm]])
【参数说明】:
sourceValue:要进行转换处理的日期型或数值型数据;
formatParm:格式参数,源数据按照该参数的指定格式进行转换,是可选参数;
nlsParm:nls设置参数,是可选参数。
【样例展示】:
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual; --返回:2022-02-20 14:38:03
select to_char(sysdate, 'yyyy/mm/dd') from dual; --返回:2022/02/20
select to_char(sysdate, 'YYYY') from dual; --返回:2022
select to_char(567,'999.00') from dual; --返回:567.00
select to_char(567,'99999.9') from dual; --返回:567.0
select to_char(5678,'C9999') from dual; --返回:CNY5678
select to_char(567,'U999') from dual; --返回:¥567
五、trim,ltrim,rtrim:去除空格函数
【函数格式】:
TRIM(sourceValue) --TRIM去除指定字符的前后空格
LTRIM(sourceValue) --LTRIM去除指定字符的前面空格
RTRIM(sourceValue) --RTRIM去除指定字符后面后空格
【样例展示】:
SELECT TRIM(' dd df ') FROM dual; -- 'dd df'
SELECT LTRIM(' dd df ') FROM dual; -- 'dd df '
SELECT RTRIM(' dd df ') FROM dual; -- ' dd df'
六、case when:类似于if-else语句
【函数格式】:
CASE
WHEN condition THEN result
[ WHEN condition THEN result ]
...
[ ELSE result ]
END
【参数说明】:
condition:返回一个布尔结果的表达式。如果结果为false,则以相同的方式评估后续where子句。
result :当关联条件为真时要返回的值
ELSE result:如果没有条件,则CASE表达式的值是ELSE子句中的结果。 如果省略ELSE子句且没有条件匹配,则结果为null。
【样例展示】:
select case when substr('134********',1,4) = '1349' then '电信'
when substr('134********',1,4) = '1348' then '联通'
else '移动'
end
七、decode:类似于if-else语句
【函数格式】:
decode(expression,value,result1,result2)
decode(expression,value1,result1,value2,result2,value3,result3......,default)
【样例展示】:
select decode ( 1+2,3,'a','b')from dual -- a
select decode(score,100,'NO.1',90,'NO.2',80,'NO.3','Other'),name from grade
-- score=100,输出'NO.1',score='90',输出‘NO.2’,score='70',输出‘NO.3’,其他值输出'Other'
八、NVL:从两个表达式返回一个非 null 值
【函数格式】:
NVL(eExpression1, eExpression2)
【函数说明】:
若expression1值为null,则该函数返回expression2;
若expression1值不为null,则该函数返回expression1;
若expression1、expression2的值均为null,则该函数返回null。
【样例展示】:
select nvl(null,'ABCD') from dual; -- ABCD
select nvl(null,12345) from dual; -- 12345
select nvl(null,sysdate) from dual; -- 2022/2/25 11:54:18
select nvl(null,to_date('2022/2/25 11:54:18','yyyy-mm-dd hh24:mi:ss')) from dual; -- 2022/2/25 11:54:18