SQL常用函数

substr() 函数:

substr(string,start,length)
参数 必须 参数说明
string 必须 指定的要截取的字符串
start 必须 规定在字符串的何处开始:正数 - 在字符串的指定位置开始;负数 - 在从字符串结尾的指定位置开始;0 - 在字符串中的第一个字符处开始
length 可选 指定要截取的字符串长度,缺省时返回字符表达式的值结束前的全部字符

例如:
select substr(‘abcdefg’,3,4) from dual;结果是cdef

instr()函数:

instr(sourceString,destString,start,appearPosition)
instr(‘源字符串’ , ‘目标字符串’ ,‘开始位置’,‘第几次出现’)
其中:

  • sourceString代表源字符串;
  • destString代表要从源字符串中查找的子串;
  • start代表查找的开始位置,这个参数可选的,默认为1;
  • appearPosition代表想从源字符中查找出第几次出现的destString,这个参数也是可选的, 默认为1

如果start的值为负数,则代表从右往左进行查找,但是位置数据仍然从左向右计算。
返回值为:查找到的字符串的位置。

对于instr函数,我们经常这样使用:从一个字符串中查找指定子串的位置。

例如:
SQL> select instr(‘abcdefgh’,‘de’) position from dual;

结果:4

trim( )函数:

trim([leading/trailing/both][匹配字符串或数值][from][需要被处理的字符串或数值])

这里如果指明了leading表示从删除头部匹配的字符串,如果指明了trailing表示从删除尾部匹配的字符串,如果指明了both,或者不指明任何位置,则两端都将被删除

如果不指明任何匹配字符串或数值则认为是空格,即删除前面或者后面的空格。

trim函数返回的类型是varchar2

例如:

select trim(0 from 7500) from dual; 结果是:75
select trim(’ my friend ') from dual; my friend

decode()函数:

主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明);

使用方法:

Select decode(columnname,值1,翻译值1,值2,翻译值2,…值n,翻译值n,缺省值)From talbename Where …

其中columnname为要选择的table中所定义的column,

·含义解释:

decode(条件,值1,翻译值1,值2,翻译值2,…值n,翻译值n,缺省值)的理解如下:

例如:
decode(substr(trim(a.t e r p c o d e ) , 13 , 2 ) , ′ − 1 ′ , ′ 80 0 ′ , ′ ′ ) 去 除 a . t erpcode),13,2),'-1','800','') 去除a.t erpcode),13,2),1,800,)a.terpcode首尾空格后,从第13位起取两位,如果这两位字符串为-1 则替换为800,其余默认为空。

row_number() over(partition by)函数:

row_number() over(partition by 列名1 order by 列名2 desc)

解析:

表示根据 列名1 分组,然后在分组内部根据 列名2 排序,而此函数计算的值就表示每组内部排序后的顺序编号,可以用于去重复值
与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码.

例如:–分析函数(查看重复)

SELECT *
  FROM (SELECT USER_NAME,
               SCHOOL,
               DEPART,
               ROW_NUMBER() OVER(PARTITION BY USER_NAME,SCHOOL,DEPART, ORDER BY USER_NAME DESC) RN
          FROM USER_M)
 WHERE RN > 1;

instr()函数的格式 (俗称:字符查找函数)

格式一:instr( string1, string2 ) // instr(源字符串, 目标字符串)

格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] ) // instr(源字符串, 目标字符串, 起始位置, 匹配序号)

解析:string2 的值要在string1中查找,是从start_position给出的数值(即:位置)开始在string1检索,检索第nth_appearance(几)次出现string2。

注:在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,也就是说从字符的开始到字符的结尾就结束。

例:
select instr(‘helloworld’,‘l’) from dual; --返回结果:3 默认第一次出现“l”的位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值