一、替换 replace(char, search_string, replace_string)
replace('name','李四','张三')
name:代表要替换的那一列的列名
'李四':需要替换的字符串
'张三':替换的字符串
执行语句后;
select
replace(姓名,'李四','张三')
from PersoninFo;
查询的过程中把李四都换成了张三!
但是不会影响原数据,其实只是一种显示模式(此处和java中的string不可变性有点类似)
二、length(char)返回字符串的长度。
select 姓名 from personinfo;
select length(姓名) from PersonInFo;
三、substr(char,m,n)
char: 需要截取字符串的列名
m: 从第几个位置开始(以1为起始值,左边开始数);当m<0,表示从字符串结尾处倒数第几个位置开始。
n: 表示截取几个字符
四、 instr( string1, string2, start_position,nth_appearance )
string1:源字符串,要在此字符串中查找;
string2:要在string1中查找的字符串;
start_position:代表从string1的哪个位置开始查找,此参数可选,如果省略则默认为1。字符串索引从1开始,如果此参数为正,从左到右开始检索;如果此参数为负,则从右到左检索;
nth_appearance:代表要查找第几次出现的string2,此参数可选,如果省略默认为1,不能为负。
五、
concat 和 '||'
concat 和String 类中的一样都是连接符,|| 也是连接符相当于string中的 '+';
六、round(n,m)保留几位小数(四舍五入)
如果没有写m,则四舍五入到整数;
如果m是正数,则四舍五入到小数点后的m位;
如果m是负数,则四舍五入到小数点前的m位;
七、trunc(n,m)对数字和日期进行截取操作
如果没有写m,就直接截去小数部分不考虑四舍五入;
如果m是正数,就直接截取到小数点后的m位;
如果m是负数,就直接截取到小数点前的m位。
trunc(Date)
trunc(sysdate,'yyyy'); --返回当前年的第一天;
trunc(sysdate, 'mm');//返回当前月的第一天;
trunc(sysdate, 'dd');//返回当前时间的年月日;
trunc(sysdate, 'd');//返回当前星期的第一天,美国是从礼拜日开始算周一(所以这里应该是上周的周末);
trunc(sysdate, 'hh');//返回当前小时。
八、取余、取商、取整、绝对值、与0判断函数
取余:mod(number1,number2)
:
取商:trunc()
、
取整:floor( n )/trunc( n ) 直接截取整数部分,不考虑四舍五入
ceil( n )考虑四舍五入
绝对值:abs( n ) 返回n 的绝对值
sign: sign(表达式)
表达式>0 返回1
表达式<0 返回-1
表达式=0 返回0
to_char( ):转换函数,转为字符串
将当前日期转为字符串
to_date( ) 将字符串转化为日期格式
to_number( ) 将char或者varchar2类型转为number类型
聚合函数:
平均值:avg()
和:sum()
统计个数:count()
最大值:max()
最小值:min()
其他常用函数:
decode() 判断字符串是否一致
eg:
if(职业==1) then return '教授'
else if(职业==2) then return '副教授'
else if(职业==3) then return '导师'
else return '讲师' (默认值)