### Oracle学习笔记:单行函数操作详解 在Oracle数据库中,单行函数是一类非常重要的数据处理工具,它们能够对单个输入值进行操作并返回一个处理后的结果。本文将根据提供的部分内容,详细介绍几种常见的Oracle单行函数及其应用场景。 #### 一、字符串处理函数 1. **LOWER 和 UPPER** - **LOWER** 函数用于将输入字符串中的所有字符转换为小写。 - **UPPER** 函数用于将输入字符串中的所有字符转换为大写。 - 示例: ```sql SELECT LOWER('HELLO WORLD') FROM DUAL; SELECT UPPER('hello world') FROM DUAL; ``` 2. **INITCAP** - **INITCAP** 函数用于将输入字符串中的每个单词的首字母转换为大写,其余字母转换为小写。 - 示例: ```sql SELECT INITCAP('hello oracle world') FROM DUAL; ``` 3. **CONCAT** - **CONCAT** 函数用于连接两个或多个字符串。 - 示例: ```sql SELECT CONCAT('Hello, ', 'World!') FROM DUAL; ``` 4. **SUBSTR** - **SUBSTR** 函数用于提取字符串的一部分。 - 示例: ```sql -- 提取从位置3开始的2个字符 SELECT SUBSTR('75557', 3, 2) FROM DUAL; -- 提取从倒数第5个位置开始的2个字符 SELECT SUBSTR('75557', -5, 2) FROM DUAL; ``` 5. **LENGTH** - **LENGTH** 函数用于计算字符串的长度(字符数量)。 - 示例: ```sql SELECT LENGTH('hello') FROM DUAL; ``` 6. **INSTR** - **INSTR** 函数用于查找一个字符串在另一个字符串中的位置。 - 示例: ```sql SELECT INSTR('Hello World', 'o', -1, 1) FROM DUAL; ``` 7. **LPAD 和 RPAD** - **LPAD** 函数用于在字符串左侧填充指定的字符。 - **RPAD** 函数用于在字符串右侧填充指定的字符。 - 示例: ```sql SELECT LPAD('Hello', 10, '*') FROM DUAL; SELECT RPAD('Hello', 10, '*') FROM DUAL; ``` 8. **REPLACE** - **REPLACE** 函数用于替换字符串中的某个子串。 - 示例: ```sql SELECT REPLACE('Hello World', 'World', 'Oracle') FROM DUAL; ``` 9. **TRIM** - **TRIM** 函数用于删除字符串开头或结尾处的空格或其他字符。 - 示例: ```sql SELECT TRIM(LEADING 'x' FROM 'xxxxxxHello World') FROM DUAL; SELECT TRIM(TRAILING 'x' FROM 'Hello Worldxxxxxx') FROM DUAL; SELECT TRIM(BOTH 'x' FROM 'xxxxxxHello Worldxxxxxx') FROM DUAL; ``` #### 二、日期处理函数 1. **SYSDATE** - **SYSDATE** 函数用于获取当前系统日期和时间。 - 示例: ```sql SELECT SYSDATE FROM DUAL; ``` 2. **DATE格式设置** - 可以通过设置会话参数`NLS_DATE_FORMAT`来改变日期的显示格式。 - 示例: ```sql ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'; SELECT SYSDATE FROM DUAL; ``` 3. **日期运算** - 可以通过简单的加减运算来进行日期计算。 - 示例: ```sql SELECT SYSDATE, SYSDATE - 7 FROM DUAL; -- 减去7天 SELECT SYSDATE, SYSDATE - 1/24 FROM DUAL; -- 减去1小时 SELECT SYSDATE, SYSDATE - 1/24/60 FROM DUAL; -- 减去1分钟 SELECT SYSDATE, SYSDATE - 1/24/60/60 FROM DUAL; -- 减去1秒 ``` #### 三、数值函数 1. **AVG** - **AVG** 函数用于计算平均值。 - 示例: ```sql SELECT AVG(SAL) FROM EMP GROUP BY DEPTNO; ``` 通过以上介绍,我们可以看到Oracle中的单行函数非常强大且灵活,能够满足大多数数据处理需求。掌握这些函数的用法对于进行有效的数据查询和分析至关重要。希望本文能帮助大家更好地理解和运用Oracle中的单行函数。
单行函数:每行输出一个结果,每行都有一个返回值。
多行函数:输入端多个值,输出一个值。如:avg(sal)输入14个值,输出一个值。
1、单行函数
大小写处理:
lower:忽略大写
upper:忽略小写
initcap:首字母大写
字符串处理函数:
concat
substr:截取 ex: select substr('75557',3,2)from dual;截取出75557中的第3个字符开始的两位字符。结果55
ex: select substr('75557',-5,2)from dual 截取出75557中的从后往前数第5个字符开始的两位,结果是75
length:计算查询字符的长度 ex:select length(dname) from dept;查询dept表中dname中字符的长度。
instr:关键字查询位置 ex:SELECT INSTR(dname,'A', -3, 1) FROM dept; 所查找到的关键字A在dname中的第几个位置
lpad:左填充 ex: select lpad(dname,9,'*') from dept;
rpad:右填充 ex:select rpad(dname,9,'*') from dept;
replace:替换 ex:select replace('he love you','he','I') from dual 由I替换he参数
trim(leading\trainling\both‘子串’:把‘子串’从字符串或列的头、尾、两端删除
SQL> SELECT INSTR(dname,'A', -3, 1) FROM dept;
INSTR(DNAME,'A',-3,1)
---------------------
1
5
2
5
所查找到的关键字A在dname中的第几个位置
- 粉丝: 2
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助