一.字符函数
在 SELECT 语句中使用字符,数字,日期和转换函数
接收字符输入返回字符或者数值,dual是伪表
-
把小写字符转换成大写字符
-
把大写字符变成小写字符
-
把首字符换成大写
-
字符串的连接可以使用concat可以使用“||”建议使用“||”
-
字符串的截取,使用substr,第一个参数是源字符串,第二个参数是开始索引,第三个参数长度,开始的索引使用1和0效果相同
substr(‘Hello’,1,3)
-
获取字符串的长度
-
字符串替换,第一个参数是源字符串,第二个参数被替换的字符串,第三个是替换字符串
二.数值函数
单行函数:
• 操作数据对象
• 接受参数返回一个结果
• 只对一行进行变换
• 每行返回一个结果
• 可以转换数据类型
• 可以嵌套
- 四舍五入函数:ROUND()
默认情况下ROUND四舍五入取整,可以自己指定保留的位数。
- 取整:TRUNC(),默认全部去掉小数,也可以指定保留的位数
- 取余数MOD()
三.日期函数
Oracle中日期实际含有两个值:日期和时间,包括日期的加减,在日期加减时有一些规律
• 在日期上加上或减去一个数字结果仍为日期。
• 两个日期相减返回日期之间相差的天数。
-日期不允许做加法运算,无意义
• 可以用数字除24来向日期中加上或减去天数。
- sysdate:返回当前系统(Oracle服务器)时间
- 例:查询雇员的进入公司的周数。
分析:查询雇员进入公司的天数(sysdate – 入职日期)/7就是周数
- 获得两个时间段中的月数:MONTHS_BETWEEN()
例:查询所有雇员进入公司的月数
- 获得几个月后的日期:ADD_MONTHS()
例:求出三个月后的日期
四.转换函数
格式:
• 必须包含在单引号中而且大小写敏感。
• 可以包含任意的有效的日期格式。
• 日期之间用逗号隔开。
- TO_CHAR 函数对日期的转换
- TO_CHAR还可以给数字做格式化
例:把雇员的工资按三位用“,”分隔,在oracle中“9”代表一位数字
- 如果在钱的前面加上国家的符号可以使用“$”代表是美元,如果要使用本地的钱的单位使用“L”
- TO_NUMBER:数值转换函数
TO_NUMBER可以把字符串转换成数值
- TO_DATE:日期转换函数
TO_DATE可以把字符串的数据转换成日期类型
五.通用函数
通用函数 适用于任何数据类型,同时也适用于空值:
1.空值处理 NVL
示例:查询所有的雇员的年薪
我们有员工的年薪是空的,原因是员工的奖金是null,null和任何数值计算都是null,
这时我们可以使用nvl来处理。
2.case when
- 在 SQL 语句中使用IF-THEN-ELSE 逻辑
- 使用两种方法:
a) CASE 表达式
b) DECODE 函数