SQL系统函数知识点梳理(Oracle)
在Oracle中,SQL系统函数是用于执行特定操作的预定义函数。以下是一些常见的系统函数及其简单示例:
NVL(expr1, expr2)
: 如果expr1
是NULL
,则返回expr2
,否则返回expr1
。
SELECT NVL(commission_pct, 0) FROM employees;
COALESCE(expr1, expr2, ...)
: 返回参数列表中的第一个非NULL
表达式。
SELECT COALESCE(commission_pct, salary, 0) FROM employees;
SUBSTR(string, start_position, [length])
: 返回从指定位置开始的子字符串。
SELECT SUBSTR('ABCDEFG', 2, 3) FROM dual; -- 输出 'BCD'
INSTR(string, substring, [start_position], [occurrence])
: 返回子字符串在字符串中第occurrence
次出现的位置。
SELECT INSTR('ABCABC', 'B', 1, 2) FROM dual; -- 输出 5
LENGTH(string)
: 返回字符串的长度。
SELECT LENGTH('ABCDEF') FROM dual; -- 输出 6
UPPER(string)
: 将字符串转换为大写。
SELECT UPPER('abcdef') FROM dual; -- 输出 'ABCDEF'
LOWER(string)
: 将字符串转换为小写。
SELECT LOWER('ABCDEF') FROM dual; -- 输出 'abcdef'
TRIM([leading | trailing | both] [trim_character] FROM string)
: 去除字符串两端的空白或指定字符。
SELECT TRIM(' ABC ') FROM dual; -- 输出 'ABC'
LPAD(string, total_length, [pad_string])
和RPAD(string, total_length, [pad_string])
: 在字符串的左侧或右侧填充字符,使其达到指定的总长度。
SELECT LPAD('ABC', 5, '*') FROM dual; -- 输出 '**ABC'
REPLACE(string, search_string, [replace_string])
: 替换字符串中的子串。
SELECT REPLACE('ABCABC', 'BA', 'XY') FROM dual; -- 输出 'XYCXYC'
TO_CHAR(date, [format_mask])
: 将日期或数字转换为字符串。
SELECT TO_CHAR(sysdate, 'YYYY-MM-DD HH24:MI:SS') FROM dual;
TO_DATE(string, [format_mask])
: 将字符串转换为日期。
SELECT TO_DATE('2023-01-01', 'YYYY-MM-DD') FROM dual;
TO_NUMBER(string, [format_mask])
: 将字符串转换为数字。
SELECT TO_NUMBER('12345', '99999') FROM dual;
ROUND(number, [decimals])
: 四舍五入到指定的小数位数。
SELECT ROUND(123.456, 2) FROM dual; -- 输出 123.46
TRUNC(number, [decimals])
: 截断到指定的小数位数。
SELECT TRUNC(123.456, 2) FROM dual; -- 输出 123.45
ABS(number)
: 返回数字的绝对值。
评论已关闭