一、字符函数
1、大小写处理函数
1)LOWER:转换字符值为小写
2)UPPER:转换字符值为大写
3)INITCAP:转换每个单词的首字母值为大写,所有其它值为小写
2、字符处理函数
1)CONCAT:连接值在一起 (CONCAT 函数有两个输入参数),等价于连接运算符(||)
CONCAT(column1|expression1,column2|expression2)
2)SUBSTR:选取给定位置和长度的子字符串
SUBSTR(column|expression,m[,n])
从字符返值中回指定的字符,开始位置在 m,n字符长度 (如果 m 是负数,计数从字符值末尾开始;如果 n 被忽略,返回到串结束的所有字符)
3)LENGTH:以数字值显示一个字符串的长度
4)INSTR:找到一个给定字符的数字位置
INSTR(column|expression,‘string’, [,m], [n] )
返回一个命名串的数字位置。随意地,你可以提供一个位置m作为查找的开始,在字符串中第n次发现的位置。
m和n的默认值是1,意味着在起始开始查找,并且报告第一个发现的位置。
5)LPAD/RPAD:用给定的字符左填充字符串到给定的长度/用给定的字符右填充字符串到给定的长度
LPAD(column|expression, n,'string')
RPAD(column|expression, n,'string')
填充字符值左、右调节到n字符位置的总宽度
6)TRIM:从一个字符串中去除头或尾的字符 (或头和尾) (如果 trim_character 或 trim_source 是一个文字字符,必须放在单引号中。)
TRIM([LEADING|TRAILING|BOTH][trimchar FROM] string)
其中:LEADING 指明仅仅将字符串的前缀字符删除
TRAILING 指明仅仅将字符串的尾随字符删除
BOTH 指明既删除前缀字符,也删除尾随字符。这也是默认方式
string 任意一待处理字符串
trimchar 可选项。指明试图删除什么字符,默认被删除的字符是空格
7)REPLACE:从字符串查找一个文本表达式,如果找到,用指定的置换串代替它
二、数字函数
函数 | 含义 | 输入 | 输出 |
---|---|---|---|
Abs(n) | 得到n的绝对值 | Select abs(-15) from dual | 15 |
Ceil(n) | 计算大于或等于n的最小整数值 | Select ceil(44.778) from dual | 45 |
Cos(n) | 返回n的余弦值. n的单位是弧度 | Select cos(180) from dual | -.5984601 |
Cosh(n) | 计算n的双曲余弦值 | Select cosh(0) from dual | 1 |
Floor(n) | 返回小于等于n的最大整数值 | Select floor(100.2) from dual | 100 |
Power(m,n) | 计算m的n次幂 | Select power(4,2) from dual | 16 |
Mod(m,n) | 返回m除以n的余数.如果n是0,则返回m | Select mod(10,3) from dual | 1 |
Round(m,n) | 计算保留到小数点右边n位的m值. n缺省设置为0,这会将m保留为最接近的整数.如果n小于0,保留到小数点左边相应的位. n必须是整数 | Select round(100.256,2) from dual | 100.26 |
Trunc(m,n) | 计算截尾到n位小数的m值. n缺省为0,结果变为一个整数值.如果n是一个负数,那么就截尾到小数点左边对应的位上 | Select trunc(100.256,2) from dual | 100.25 |
Sqrt(n) | 返回n的平方根. n必须是正数 | Select sqrt(4) from dual | 2 |
Sign(n) | 获得n的符号位标志.如果n<0返回-1.如果n=0返回0.如果n>0返回1 | Select sign(-30) from dual | -1 |
三、日期函数
1、oracle日期使用:
RR格式与YY格式:简单的讲,RR 格式将日期中年的部分解释为从 1950 到 1999; YY 格式将日中年的部分解释为当前世纪 (2090)
2、日期函数
MONTHS_BETWEEN:两个日期之间的月数
ADD_MONTHS:加日历月到日期
NEXT_DAY:下个星期几是几号
LAST_DAY:指定月的最后一天
ROUND:四舍五入日期
TRUNC:截断日期
四、转换函数
1、显示数据类型转换
常用的转换函数:TO_CHAR;TO_DATE;TO_NUMBER
2、隐式数据类型转换
在oracle中,在不同的数据类型之间关联,如果不显式转换数据,则它会根据以下规则对数据进行隐式转换
简单总结:比较时,一般是字符型转换为数值型,字符型转换为日期型
算术运算时,一般把字符型转换为数值型,字符型转换为日期型
连接时(||),一般是把数值型转换为字符型,日期型转换为字符型
赋值、调用函数时,以定义的变量类型为准。
五、通用函数
这些函数可用于任意数据类型,用来转换空值的函数
1、NVL (expr1, expr2) expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致
2、NVL2 (expr1, expr2, expr3) expr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型
3、NULLIF (expr1, expr2) 相等返回NULL,不等返回expr1
4、COALESCE (expr1, expr2, ..., exprn) 列表中第一个非空的表达式是函数的返回值,如果所有的表达式都是空值,最终将返回一个空值。
5、嵌套函数:单行函数能够被嵌套任意层次,嵌套函数的计算是从最里层到最外层
6、条件表达式
在 SQL 语句中提供 IF-THEN-ELSE 逻辑的使用
• 两种用法:
– CASE 表达式
– DECODE 函数
1) CASE 表达式:使得 IF-THEN-ELSE 条件判断容易实现
2) DECODE 函数:使得 CASE 或者 IF-THEN-ELSE 条件判断容易实现: