### Oracle常用函数详解
Oracle数据库提供了丰富的内置函数,这些函数能够帮助我们进行数据处理和分析,提高查询效率和数据质量。下面将详细解释标题和描述中提到的部分Oracle函数及其应用场景。
#### 1. 取系统时间和日期相关函数
- `SYSDATE`: 返回系统的当前日期和时间。
- 示例:`SELECT SYSDATE FROM DUAL;`
- `LAST_DAY`: 返回指定日期所在月份的最后一天。
- 示例:`SELECT LAST_DAY(SYSDATE) FROM DUAL;`
- `ADD_MONTHS`: 在给定日期基础上增加或减少指定月份数。
- 示例:`SELECT ADD_MONTHS(SYSDATE, 3) FROM DUAL;`
- `TO_CHAR`: 将日期转换为指定格式的字符串。
- 示例:`SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;`
#### 2. 数据转换和操作函数
- `TO_DATE`: 将字符串转换为日期格式。
- 示例:`SELECT TO_DATE('2011-05-04', 'YYYY-MM-DD') FROM DUAL;`
- `TO_NUMBER`: 将字符串转换为数字。
- 示例:`SELECT TO_NUMBER('12334') FROM DUAL;`
- `UPPER`: 将字符串转换为大写。
- 示例:`SELECT UPPER('aaaaAAA') FROM DUAL;`
- `LOWER`: 将字符串转换为小写。
- 示例:`SELECT LOWER('aaaaAAA') FROM DUAL;`
- `INITCAP`: 首字母大写。
- 示例:`SELECT INITCAP('hello world') FROM DUAL;`
- `ASCII`: 获取字符的ASCII码。
- 示例:`SELECT ASCII('Z') FROM DUAL;`
- `CHR`: 根据ASCII码返回字符。
- 示例:`SELECT CHR(65) FROM DUAL;`
#### 3. 字符串操作函数
- `SUBSTR`: 提取字符串的一部分。
- 示例:`SELECT SUBSTR('abcdefg', 3, 4) FROM DUAL;`
- `INSTR`: 查找子串在字符串中的位置。
- 示例:`SELECT INSTR('abcdefg', 'ef') FROM DUAL;`
- `LTRIM`, `RTRIM`, `TRIM`: 分别去除字符串左边、右边和两端的空格。
- 示例:`SELECT LTRIM(' abc '), RTRIM(' abc '), TRIM(' abc ') FROM DUAL;`
#### 4. 数学和逻辑函数
- `NVL`: 如果第一个参数为NULL,则返回第二个参数的值;否则返回第一个参数的值。
- 示例:`SELECT NVL(NULL, '111'), NVL('11', '222') FROM DUAL;`
- `DECODE`: 类似于CASE WHEN语句,用于条件判断和返回相应的值。
- 示例:`SELECT DECODE('11', '22', 'BB', '33', 'CC', 'DD') FROM DUAL;`
- `SIGN`: 返回数值的符号,正数为1,0为0,负数为-1。
- 示例:`SELECT SIGN(2), SIGN(0), SIGN(-2) FROM DUAL;`
#### 5. 聚合和窗口函数
- `SUM`, `COUNT`, `MAX`, `MIN`, `AVG`: 这些是聚合函数,用于计算列的总和、计数、最大值、最小值和平均值。
- 示例:`SELECT SUM(id) FROM table WHERE condition;`
- `LAG`, `LEAD`: 用于窗口函数,返回指定列相对于当前行前后的值。
- 示例:`SELECT s.id, LAG(s.id, 2) OVER (ORDER BY s.id) FROM table s;`
- `OVER`: 窗口函数,允许在一组行上执行计算。
- 示例:`SELECT SUM(r.id) OVER (ORDER BY r.id) FROM table r;`
#### 6. 连接和遍历函数
- `CONNECT BY`: 用于树形查询,遍历层级结构的数据。
- 示例:`SELECT CONNECT_BY_ROOT id, connect_by_isleaf FROM table START WITH condition CONNECT BY PRIOR id = parent_id;`
以上列举了部分Oracle数据库中常用的函数,它们在日常的数据库管理和数据分析中发挥着重要作用。熟练掌握这些函数的使用方法,能够显著提升SQL查询的效率和灵活性。