简述19个常用Oracle内置函数?
参考回答
以下是Oracle数据库中常用的19个内置函数:
SYSDATE:- 返回当前的系统日期和时间。
SELECT SYSDATE FROM dual;CURRENT_DATE:- 返回当前会话的日期和时间(时区依赖于会话的时区设置)。
SELECT CURRENT_DATE FROM dual;NVL:- 替换空值(
NULL)为指定的值。
SELECT NVL(column_name, 'default_value') FROM table_name;- 替换空值(
COALESCE:- 返回表达式列表中第一个非
NULL的值。
SELECT COALESCE(column1, column2, 'default_value') FROM table_name;- 返回表达式列表中第一个非
TO_CHAR:- 将日期或数字转换为字符串。
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM dual;TO_NUMBER:- 将字符串转换为数字。
SELECT TO_NUMBER('123.45') FROM dual;TO_DATE:- 将字符串转换为日期。
SELECT TO_DATE('2025-01-01', 'YYYY-MM-DD') FROM dual;UPPER:- 将字符串中的所有字符转换为大写。
SELECT UPPER('oracle') FROM dual;LOWER:- 将字符串中的所有字符转换为小写。
SELECT LOWER('ORACLE') FROM dual;LENGTH:- 返回字符串的长度(以字符为单位)。
SELECT LENGTH('Oracle') FROM dual;SUBSTR:- 返回从字符串指定位置开始的子字符串。
SELECT SUBSTR('Oracle', 2, 3) FROM dual;CONCAT:- 连接两个字符串。
SELECT CONCAT('Oracle', ' Database') FROM dual;TRIM:- 删除字符串两端的指定字符。
SELECT TRIM(' ' FROM ' Oracle ') FROM dual;ROUND:- 对数字进行四舍五入。
SELECT ROUND(123.456, 2) FROM dual;CEIL:- 返回大于或等于指定数字的最小整数。
SELECT CEIL(123.45) FROM dual;FLOOR:- 返回小于或等于指定数字的最大整数。
SELECT FLOOR(123.45) FROM dual;MOD:- 返回两个数相除的余数。
SELECT MOD(10, 3) FROM dual;NOW:- 返回当前的日期和时间,精度通常为秒。
SELECT NOW FROM dual;DECODE:- 条件函数,类似于
IF-THEN-ELSE语句,用于将一个值与多个可能的值进行比较。
SELECT DECODE(status, 'A', 'Active', 'I', 'Inactive', 'Unknown') FROM users;- 条件函数,类似于
详细讲解与拓展
SYSDATE与CURRENT_DATE:SYSDATE返回当前操作系统的日期和时间,而CURRENT_DATE是基于会话时区返回当前日期和时间,二者的区别在于时区。
NVL和COALESCE:NVL函数接受两个参数,返回第一个非NULL值,而COALESCE可以接受多个参数,返回第一个非NULL的值。
- 类型转换函数(
TO_CHAR、TO_NUMBER、TO_DATE):- 这些函数通常用于数据转换,
TO_CHAR用于将日期或数字转换为字符串,TO_NUMBER将字符串转换为数字,TO_DATE将字符串转换为日期格式。
- 这些函数通常用于数据转换,
- 字符串处理函数:
UPPER和LOWER用于字符串的大小写转换,LENGTH返回字符串的长度,SUBSTR从字符串中提取子串,TRIM去除字符两端的空白。
- 数学函数:
ROUND、CEIL、FLOOR用于数字的四舍五入、向上取整和向下取整,而MOD返回两个数字相除的余数。
DECODE函数:DECODE类似于CASE语句,用于根据输入值的不同返回不同的结果,可以简化多个IF-THEN-ELSE语句的写法。
总结
Oracle内置函数提供了丰富的数据处理和转换功能。通过这些函数,用户可以轻松地进行日期、数字、字符串等数据类型的转换与操作。在实际开发中,掌握这些常用函数能够提高SQL查询的效率和灵活性。