1.Oracle instr函数 -截取某字符在父字符串中的索引位置
instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始到字符的结尾就结束。
还有一个用法,如下:
SELECT code, name, dept, occupation FROM staff WHERE instr(code, '001') > 0;
等同于
SELECT code, name, dept, occupation FROM staff WHERE code LIKE '%001%' ;
2.Oracle substr函数 -从父字符串截取指定位置的子字符串
substr(字符串,截取开始位置,截取长度) //返回截取的字符串
substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串
substr('Hello World',1,1) //返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符
substr('Hello World',2,4) //返回结果为 'ello'
substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符
3.Oracle length()函数-不能区分中英文,只能得到字符数而不能得到字节数
不能对一个使用LONG数据类型的列使用LENGTH之类的函数。
4.Oracle Trunc()函数-用于对值进行截断
格式:TRUNC(n1,n2),n1表示被截断的数字,n2表示要截断到那一位。n2可以是负数,表示截断小数点前,即均以0记。
注意,TRUNC截断不是四舍五入。
/**************日期********************/
1.select trunc(sysdate) from dual --2014-12-12 今天的日期为2014-12-12
2.select trunc(sysdate, 'mm') from dual --2014-12-1 返回当月第一天.
3.select trunc(sysdate,'yy') from dual --2014-1-1 返回当年第一天
4.select trunc(sysdate,'dd') from dual --2014-12-12 返回当前年月日
5.select trunc(sysdate,'yyyy') from dual --2014-1-1 返回当年第一天
6.select trunc(sysdate,'d') from dual --2014-12-7(星期天)返回当前星期的第一天
7.select trunc(sysdate, 'hh') from dual --2014-12-12 14:00:00 当前时间为14:41
8.select trunc(sysdate, 'mi') from dual --2014-12-12 14:41:00 TRUNC()函数没有秒的精确
/***************数字********************/
/*
TRUNC(number,num_digits)
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
TRUNC()函数截取时不进行四舍五入
*/
9.select trunc(123.458) from dual --123
10.select trunc(123.458,0) from dual --123
11.select trunc(123.458,1) from dual --123.4
12.select trunc(123.458,-1) from dual --120
13.select trunc(123.458,-4) from dual --0
14.select trunc(123.458,4) from dual --123.458
15.select trunc(123) from dual --123
16.select trunc(123,1) from dual --123
17.select trunc(123,-1) from dual --120
5.Oracle ROUND函数-四舍五入
传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果。
select round(123.456, 0) from dual; 回传 123
select round(123.456, 1) from dual; 回传 123.5
select round(-123.456, 2) from dual; 回传 -123.46
OtherWise:
ceil(n) 取大于等于数值n的最小整数;floor(n)取小于等于数值n的最大整数
6.LOWER(string) 将输入的字符串转换成小写
7.UPPER(string) 将输入的字符串转换成大写
8.INITCAP(string) 将输入的字符串单词的首字母转换成大写。PS:如果不是两个字母连在一起,则认为是新的单词,
例:a_b a,b a b 类似前面这些情况,都a和b都会转换成大写
9.concat-连接函数(||)
将两个字符串用||连接起来,除此之外还可以使用Concat函数来连接字符串。
例:select CONCAT('City','country') from Table
注意:如果CONCAT中连接的值不是字符串,Oracle会尝试将其转换为字符串,与MySQL的CONCAT()函数不同,Oracle的CONCAT()函数只支持两个参数,不支持两个以上字符串的拼接。
10.LPAD和RPAD,填充函数
这是两个十分相似的函数,使用方式完全一样。允许在列的左[右]边填充一组字符。例:RPAD(city,20,'.'),如果ciy的值没有小于长度20的话,则用'.'在右边补齐,补到20个,如果是用空格补齐,看上去就是像左对齐一样。
11.LTRIM,RTRIM和TRIM
他们的作用是从字符串的左边,右边,左右两边删除不需要的字符,默认时删除空格。trim只能去除单个字符,而ltrim和rtrim可 以去除多个字符。
trim格式略有不同:
SELECT trim(leading 'd' from 'dfssa') FROM dual; --fssa(前)
SELECT trim(both '1' from '123sfd111') FROM dual; --23sfd
SELECT trim(trailing '2' from '213dsq12') FROM dual;--213dsq1(尾)
rtrim:SELECT rtrim('aaaaminb','main') FROM dual;--aaaaminb
ltrim:SELECT ltrim('ccbcminb','cb') FROM dual;--minb
12.Chr和ascii函数
在即查询中很少使用。Chr把数值转换成等价的ascii字符串 例:select chr(70) from dual
ascii函数执行的结果刚好是相反的,传递给他字符串,它将转换成对应的数值(只转换第一个字符串),如果需要同时转换多个字符串可以使用DUMP函数 DUMP(string)
13.REPLACE(string,s1,s2)-替换函数
说明:string 希望被替换的字符或变量 s1 被替换的字符串 s2 要替换的字符串
TO_DATE:将字符串按照定制格式转换为日期类型
for example:TO_DATE('2002-01-01','YYYY-MM-DD')
TO_CHAR:将其它类型(日期,数值)的数据转换为字符类型,主要应用在日期类型上。
for example:TO_CHAR(hiredate,'YYYY"年"MM"月"DD"日"')