## Oracle 查询函数
简介
Oracle 数据库提供了丰富的内置函数,可以简化数据查询和操作。这些函数可以用于执行各种任务,例如字符串处理、数值计算、日期操作、数据类型转换以及聚合计算等。 熟练掌握这些函数,可以编写更高效、更简洁的 SQL 查询语句。### 单行函数单行函数对每一行输入数据返回一个结果。它们可以嵌套使用,并且可以用于 `SELECT`、`WHERE`、`HAVING` 和 `ORDER BY` 子句中。#### 字符函数
`CONCAT(str1, str2)`:
连接两个字符串。等同于 `||` 操作符。
`SUBSTR(string, start, length)`:
从指定位置 `start` 开始,截取长度为 `length` 的子字符串。
`LENGTH(string)`:
返回字符串的长度。
`INSTR(string, substring)`:
返回子字符串 `substring` 在字符串 `string` 中第一次出现的位置。
`REPLACE(string, search_string, replacement_string)`:
将字符串 `string` 中所有出现的 `search_string` 替换为 `replacement_string`。
`UPPER(string)`:
将字符串转换为大写。
`LOWER(string)`:
将字符串转换为小写。
`TRIM(leading | trailing | both trim_character FROM string)`:
去除字符串开头、结尾或两端的指定字符。
`LPAD(string, length, pad_string)`:
在字符串左侧填充指定字符 `pad_string`,使其达到指定的长度 `length`。
`RPAD(string, length, pad_string)`:
在字符串右侧填充指定字符 `pad_string`,使其达到指定的长度 `length`。#### 数值函数
`ROUND(number, decimal_places)`:
将数值四舍五入到指定的小数位数。
`TRUNC(number, decimal_places)`:
将数值截断到指定的小数位数。
`MOD(m, n)`:
返回 `m` 除以 `n` 的余数。
`ABS(number)`:
返回数值的绝对值。
`POWER(m, n)`:
返回 `m` 的 `n` 次方。
`SQRT(number)`:
返回数值的平方根。#### 日期函数
`SYSDATE`:
返回当前日期和时间。
`ADD_MONTHS(date, number_of_months)`:
将日期加上指定的月份数。
`MONTHS_BETWEEN(date1, date2)`:
返回两个日期之间的月份数。
`NEXT_DAY(date, day_of_week)`:
返回指定日期之后的下一个指定星期几的日期。
`LAST_DAY(date)`:
返回指定月份的最后一天。
`TRUNC(date, format)`:
将日期截断到指定的精度 (例如 'YYYY', 'MM', 'DD')。#### 转换函数
`TO_CHAR(date, format)`:
将日期转换为指定格式的字符串。
`TO_DATE(string, format)`:
将字符串转换为指定格式的日期。
`TO_NUMBER(string)`:
将字符串转换为数字。#### 其他常用函数
`NVL(expr1, expr2)`:
如果 `expr1` 为 NULL,则返回 `expr2`;否则返回 `expr1`。
`COALESCE(expr1, expr2, ...)`:
返回第一个非 NULL 的表达式。
`CASE expr WHEN value1 THEN result1 WHEN value2 THEN result2 ELSE result_else END`:
根据表达式的值返回不同的结果。
`DECODE(expr, value1, result1, value2, result2, ..., default_result)`:
类似于 `CASE` 表达式,但更简洁。### 聚合函数聚合函数对多行数据进行计算并返回单个结果。它们通常用于 `SELECT` 子句中,并与 `GROUP BY` 子句一起使用。
`COUNT(
)`:
返回行数。
`COUNT(expression)`:
返回非 NULL 值的行数。
`SUM(expression)`:
返回数值的总和。
`AVG(expression)`:
返回数值的平均值。
`MAX(expression)`:
返回最大值。
`MIN(expression)`:
返回最小值。### 分析函数分析函数计算多行数据并为每行返回一个结果。它们通常用于 `SELECT` 子句中,并带有 `OVER` 子句。 这部分内容较为复杂,可以单独深入学习。
总结:
Oracle 提供了大量的内置函数,可以极大地提高 SQL 查询的效率和灵活性。 本文只是列举了部分常用函数,建议参考官方文档了解更多函数的用法和示例。 通过不断实践和探索,才能更好地掌握 Oracle 查询函数的强大功能。
Oracle 查询函数**简介**Oracle 数据库提供了丰富的内置函数,可以简化数据查询和操作。这些函数可以用于执行各种任务,例如字符串处理、数值计算、日期操作、数据类型转换以及聚合计算等。 熟练掌握这些函数,可以编写更高效、更简洁的 SQL 查询语句。
单行函数单行函数对每一行输入数据返回一个结果。它们可以嵌套使用,并且可以用于 `SELECT`、`WHERE`、`HAVING` 和 `ORDER BY` 子句中。
字符函数* **`CONCAT(str1, str2)`:** 连接两个字符串。等同于 `||` 操作符。 * **`SUBSTR(string, start, length)`:** 从指定位置 `start` 开始,截取长度为 `length` 的子字符串。 * **`LENGTH(string)`:** 返回字符串的长度。 * **`INSTR(string, substring)`:** 返回子字符串 `substring` 在字符串 `string` 中第一次出现的位置。 * **`REPLACE(string, search_string, replacement_string)`:** 将字符串 `string` 中所有出现的 `search_string` 替换为 `replacement_string`。 * **`UPPER(string)`:** 将字符串转换为大写。 * **`LOWER(string)`:** 将字符串转换为小写。 * **`TRIM(leading | trailing | both trim_character FROM string)`:** 去除字符串开头、结尾或两端的指定字符。 * **`LPAD(string, length, pad_string)`:** 在字符串左侧填充指定字符 `pad_string`,使其达到指定的长度 `length`。 * **`RPAD(string, length, pad_string)`:** 在字符串右侧填充指定字符 `pad_string`,使其达到指定的长度 `length`。
数值函数* **`ROUND(number, decimal_places)`:** 将数值四舍五入到指定的小数位数。 * **`TRUNC(number, decimal_places)`:** 将数值截断到指定的小数位数。 * **`MOD(m, n)`:** 返回 `m` 除以 `n` 的余数。 * **`ABS(number)`:** 返回数值的绝对值。 * **`POWER(m, n)`:** 返回 `m` 的 `n` 次方。 * **`SQRT(number)`:** 返回数值的平方根。
日期函数* **`SYSDATE`:** 返回当前日期和时间。 * **`ADD_MONTHS(date, number_of_months)`:** 将日期加上指定的月份数。 * **`MONTHS_BETWEEN(date1, date2)`:** 返回两个日期之间的月份数。 * **`NEXT_DAY(date, day_of_week)`:** 返回指定日期之后的下一个指定星期几的日期。 * **`LAST_DAY(date)`:** 返回指定月份的最后一天。 * **`TRUNC(date, format)`:** 将日期截断到指定的精度 (例如 'YYYY', 'MM', 'DD')。
转换函数* **`TO_CHAR(date, format)`:** 将日期转换为指定格式的字符串。 * **`TO_DATE(string, format)`:** 将字符串转换为指定格式的日期。 * **`TO_NUMBER(string)`:** 将字符串转换为数字。
其他常用函数* **`NVL(expr1, expr2)`:** 如果 `expr1` 为 NULL,则返回 `expr2`;否则返回 `expr1`。 * **`COALESCE(expr1, expr2, ...)`:** 返回第一个非 NULL 的表达式。 * **`CASE expr WHEN value1 THEN result1 WHEN value2 THEN result2 ELSE result_else END`:** 根据表达式的值返回不同的结果。 * **`DECODE(expr, value1, result1, value2, result2, ..., default_result)`:** 类似于 `CASE` 表达式,但更简洁。
聚合函数聚合函数对多行数据进行计算并返回单个结果。它们通常用于 `SELECT` 子句中,并与 `GROUP BY` 子句一起使用。* **`COUNT(*)`:** 返回行数。 * **`COUNT(expression)`:** 返回非 NULL 值的行数。 * **`SUM(expression)`:** 返回数值的总和。 * **`AVG(expression)`:** 返回数值的平均值。 * **`MAX(expression)`:** 返回最大值。 * **`MIN(expression)`:** 返回最小值。
分析函数分析函数计算多行数据并为每行返回一个结果。它们通常用于 `SELECT` 子句中,并带有 `OVER` 子句。 这部分内容较为复杂,可以单独深入学习。**总结:**Oracle 提供了大量的内置函数,可以极大地提高 SQL 查询的效率和灵活性。 本文只是列举了部分常用函数,建议参考官方文档了解更多函数的用法和示例。 通过不断实践和探索,才能更好地掌握 Oracle 查询函数的强大功能。