注:string为字符串类型,a和b为int类型 1、string 需要截取的字符串 2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取) 3、b 要截取的字符串的长度
1、string 需要截取的字符串 2、a 可以理解为从第a个字符开始截取后面所有的字符串。
1、nvl(str1,str2) 如果str1为空则返回str2 2、nvl(str1,str2,str3) 如果str1位空则返回str3,如果不为空则返回str2
1、LTRIM(str):将字符串左边的空格移除。 2、RTRIM(str): 将字符串右边的空格移除。 3、TRIM(str): 将字符串首尾两端的空格移除。
语法:ROUND(number,num_digits) 其中Number是需要进行四舍五入的数字;Num_digits为指定的位数,按此位数进行四舍五入, select round(sum (a.long_time)/3,0) r0 from dual;
语法格式:TRUNC(date[,fmt]) 其中:date 一个日期值;fmt 日期格式。 如: select trunc(sysdate,‘YY-MM-DD‘) from dual
语法格式:TRUNC(number[,decimals]) 其中: number 待做截取处理的数值;decimals 指明需保留小数点后面的位数,可选项,忽略它则截去所有的小数部分。 注意:截取时并不对数据进行四舍五入。 如: select trunc(123.567,2) from dual;--123.56,将小数点右边指定位数后面的截去; select trunc(123.567,-2) from dual;--100,第二个参数可以为负数,表示将小数点左边指定位数后面的部分截去,即均以0记; select trunc(123.567) from dual;--123,默认截去小数点后面的部分;
(case when 判断1 then 结果1 else 结果2 when 判断2 then 结果1 else 结果 2 ... end )
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序, 而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 如:select t.*,row_number() over(partition by accno order by createDate) row_number from Test t
rank()是跳跃排序,有两个第二名时接下来就是第四名。 如:select t.*,rank() over(partition by accno order by createDate) rank from Test t
dense_rank()也是连续排序,有两个第二名时仍然跟着第三名。 select t.*,dense_rank() over(partition by accno order by createDate) dense_rank from Test t 列:取出前四条申请的数据 select createDate, accno, money, num from (select t.*,row_number() over(partition by accno order by createDate) num from Test t) t1 where num<4
1.decode(条件,值1,赋值11,值2,赋值2,...赋值n,赋值n,x) 函数含义: IF 条件=值1 THEN RETURN(赋值1) ELSIF 条件=值2 THEN RETURN(赋值2) ...... ELSIF 条件=值n THEN RETURN(赋值n) ELSE RETURN(赋值x) END IF 如: SELECT ID,DECODE(inParam,‘para1‘,‘值1‘, ‘para2‘,‘值2‘, ‘para3‘,‘值3‘, ‘para4‘,‘值4‘, ‘para5‘,‘值5‘, ‘para6‘) name FROM bank 对inParam进行判断,如果值为‘para1‘则重新赋值为‘值1’ 如果不在判断范围内的值则赋值为‘para6’
原文:https://www.cnblogs.com/wangdecheng/p/12195883.html