PLSQL_底子连串8_操作符标LPAD / TRUNC / DECODE / T奇骏IM / INSTKuga

     主即使对项目中用过的 oracle
函数进行总结,并做出目录,方便后续项目是快速搜索,提升功能。

2014-12-09 BaoXinjian

01.Round (数值的四舍五入卡塔尔(قطر‎

汇报:传回三个数值,该数值是根据钦定的小数位元数实行四舍五入运算的结果。

SELECT Round(Number,[Decimal_Places])FROM Dual;

param:
Number:欲管理的数值
Decimal_Places:四舍五入,小数取二人(预设为0卡塔尔
Sample:

SELECT Round(123.456,1)FROM Dual;

output:123.5

SELECT Round(123.4567,3)FROM Dual;

output:123.458

图片 1豆蔻梢头、字符函数

02.Case …When… (oracle 的if…else…)

case XX属性(可不填) when XX属性判断 then XX else XX end 你要赋值的表属性Sample:CASE lanageWHEN lanage='java' then'01'else'02'end code;case ... when 类似与程序语言中的 if(){}else{}

03.Nvl (数据表字段的判空管理State of Qatar

Nvl(string, replace_with)
param:
string:欲管理字符串
replace_with:要替换的字符串
假如string为NULL,则NVL函数重临replace_with的值,不然重临string1的值,假如七个参数都为NULL
,则赶回NULL
可以用来字段判空后的拍卖操作,例如教室职务名称,假诺字段为空,都默以为日常。
Sample:

select nvl(t.title,'普通') from teacher t;
  1. LOWE福睿斯 (strexpState of Qatar – 重回字符串,并将享有的字符小写.

    select lower(‘ABCDE’) from dual

04.Decode (字段名称的改造卡塔尔

decode(XX属性,XX属性值,’要转译为的字符串’)函数:
举例:

Select decode (t.title,'01','普通','02','高级','其他') from teacher 这个函数在项目中用的比较多,与上面的case_when..其实有点相似

 

05.树递归查询

select ...from ....start with ....[开始递归遍历的起点]connect by prior [级联关系,比如 下级.parentid = 上级.id]当前表字段=级联表字段 start with与connect by prior语句完成递归记录,形成一棵树形结构,通常可以在具有层次结构的表中使用。
  1. UPPE哈弗 (strexp卡塔尔(قطر‎     再次来到字符串,并将享有的字符大写.

    select upper(‘abcdf’) from dual

06.Trunc (截取日期和数字管理State of Qatar

其现实的语法格式如下:

1)Trunc(Date[,Fmt])Trunc(To_Date('24-Nov-199908:00Pm'),'Dd-Mon-YyyyHh:MiAm')='24-Nov-199912:00:00Am'2)Trunc(ForNumber)--Trunc函数返回处理后的数值,其工作机制与Round函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。Trunc(89.985,2)=89.98Trunc(89.985)=89Trunc(89.985,-1)=80 如果我们不需要从具体的表来取得

表中数量,而是生机勃勃味地为了获得部分我们想获取的音讯,并要通过Select完结时,将要依据一个对象,那么些目的,正是Dual;
不畏将数值型恐怕日期型转向为字符型。
Sample:

To_Char(Number,'格式')To_Char(Salary,’$99,999.99’)

 

07.Regexp_Substr (正则表明式的合作卡塔尔(قطر‎

Regexp_Substr(String,Pattern,Position,Occurrence,Modifier)
__Srcstr:要求进行正则管理的字符串
__Pattern:举行相配的正则表明式
__Position:开端地点,从第多少个字符初步正则表达式相称(默感到1)
__Occurrence:标志第多少个相称组,默以为1
__Modifier:情势(’i’不区分抑扬顿挫写进行查找;’c’区分朗朗上口写进行检索。默以为’c’。)

Sample:

Select Regexp_Substr('17,20,23','[^,]+',1,1,'i') As Str From Dual;

3.INITCAP(strexp卡塔尔国   
将字符串的(各个单词的卡塔尔第二个假名变为大写,后边的小写;

08.Substr (字符串的截取卡塔尔国

Substr(字符串,截取早先地方,截取长度卡塔尔
Substr(‘HelloWorld’,1,1State of Qatar//重临结果为’h’*0和1都以象征截取的开端地点为率先个字符
Substr(‘HelloWorld’,2,4State of Qatar//再次来到结果为’Ello’

select initcap(' source fore') from dualselect initcap(' SOURCE FORE') from dual  -- Source Fore(如果都是大写会自动将第一个字母变为大写其他的小写)

09.Replace(’要更正字符串’,’被轮番掉’,’替换’)

Sample:

SelectReplace('111222333444','222','888')FromDual;output:'111888333444'

 

10.Instr (字符串中一定字符的目录地点,从1最初State of Qatar

Instr(源字符串,指标字符串,初步地点,匹配序号卡塔尔
Instr函数重临要截取的字符串在源字符串中的地点。只检索二次,正是说从字符的上马到字符的末梢就停止。

Param:

Instr(String1,String2[,Start_Position[,Nth_Appearance]])String1源字符串,要在此字符串中查找。String2要在String1中查找的字符串.Start_Position代表String1的哪个位置开始查找。此参数可选,如果省略默认为1.字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。Nth_Appearance代表要查找第几次出现的String2.此参数可选,如果省略,默认为1.如果为负数系统会报错。SelectInstr('Syranmo','s')FromDual;--返回1SelectInstr('Syranmo','Ra')FromDual;--返回3

4.CONCAT(strexp, strexp):  连接三个字符串

11.add_months (获取特定月份卡塔尔

add_months(data,number卡塔尔函数输入日期上助长内定的多少个月再次来到叁个新的日子;
Sample:

add_months(to_date('15-Nov-1961','d-mon-yyyy'),1) 

output:  15-Dec-1961
add_months(sysdate, -1卡塔尔 重回当明天期月份-1,就是上一个月

select concat(first_name,last_name) from employees

 

5.substr(str,start_index,lengthState of Qatar: 从钦命的职责截取内定长度的字符串

select substr('abcdefg',2,3) from dual

 

6.LENGTH(strexp):再次来到字符串的长度

select length('abcdef') from dual

 

7.INST宝马X5(C1,C2,I,J卡塔尔:
在二个字符串中追寻钦赐的字符,再次回到发掘钦赐的字符的位置;

C1:搜索的字符

C2:要探究的字符

I:表示从哪些岗位起初查找

J:查找第几回面世

select instr('aborcdoryuklhorp','or',1,2) from dual ---7select instr('aborcdoryuklhorp','or',6,2) from dual ---14  

 

8.LPAD( string1, padded_length, [ pad_string ] State of Qatar  
在列的左臂粘贴字符

select lpad('acd',8) from dual

 

9.RPAD(粘贴字符卡塔尔(قطر‎    RPAD? 在列的侧面粘贴字符

select rpad('acd',8,'') from dualselect rpad('acdefghijklm',8,'') from dual

 

10.trim(str卡塔尔:截取字符串两端特殊字符

select  ' abd  '  from dualselect  trim(' abd  ')  from dual 

 

11.replace(str,search_str[,replace_str]State of Qatar:
将每一回在str中现身的search_str用replace_str替换

select replace('HELOVEYOU','HE','I') from dual

 

图片 2二、数学函数


1.round:传回三个数值,该数值是根据钦定的小数位数举行四舍五入运算的结果。

select round(3000.926) from dual --3001--小数部分是两位select round(3000.926,2) from dual --3000.93

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图