--sql函数
单行函数、分组函数、分析函数
单行函数对于从表中查询的每一行只返回一个值。
可以出现在select子句中和where子句中
单行函数可以大致分为
- 字符函数
- 日期时间函数
- 数字函数
- 转换函数
- 混合函数
字符函数接受字符输入并返回字符或数值
函数 | 输入 | 输出 |
Initcap(char) | Select initcap(‘hello’) from dual; | Hello |
Lower(char) | Select lower(‘FUN’) from dual; | fun |
Upper(char) | Select Upper(‘sun’) from dual; | SUN |
Ltrim(char,set) | Select Itrim(‘xyzadams’,’xyz’) from dual; | adams |
Rtrim(char,set) | Select rtrim(‘xyzadams’,’ams’) from dual; | xyzad |
Translate(char,j,b) | Select translate(‘jack’,’j’,’b’) from dual; | back |
Replace(char,searchstring,[rep string]) | Select replace(‘jack and jue’,’j’,’bl’) from dual; | Black and blue |
instr( string1, string2 ) | Select instr(‘WorldWide’,’d’) from dual; | 5 |
Substr(char,m,n) | Select substr(‘abcdefg’,3,2) from dual; | cd |
Concat(expr1,expr2) | Select concat(‘Hello’,’World’) from dual; | HelloWorld |
单引号把char引起来。
Initcap(char) 就是把第一个字符转换成大写,其他不变。
Lower(char) 全部转化成小写。
Upper(char) 全部装换成大写,char要加单引号。
Ltrim(char,set) 表示"Left Trim",用于去除字符串左侧的空格或指定字符
Rtrim(char,set) 表示"Right Trim",用于去除字符串右侧的空格或指定字符。
Translate(char,from,to) 把char中的 j 替换成b。
Replace(char,searchstring,[rep string]) 把char中的searchstring替换成[rep string]。
Instr (char,m,n) 查找m在char首次出现的位置(如果加上n,代表第n次出现的位置)
- instr()函数的格式 (俗称:字符查找函数)
格式一:
instr( string1, string2 )
注释:instr(源字符串, 目标字符串)
格式二:
instr( string1, string2 [, start_position [, nth_appearance ] ] )
instr(源字符串, 目标字符串, 起始位置, 匹配序号)
解析:string2 的值要在string1中查找,是从start_position给出的数值(即:位置)开始在string1检索,检索第nth_appearance(几)次出现string2。
注:在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,也就是说从字符的开始到字符的结尾就结束。
2、实例
格式一
- select instr('helloworld','l') from dual;
--返回结果:3
默认第一次出现“l”的位置
- select instr('helloworld','lo') from dual; --返回结果:4
即:在“lo”中,“l”开始出现的位置
- select instr('helloworld','wo') from dual;--返回结果:6
格式二:如SQL> select instr('hello','l',2,2) from dual;
INSTR('HELLO','L',2,2)
----------------------
4
TRIM是一个更通用的函数,它可以去除字符串的开头和结尾的空格或指定字符,不论其出现在字符串的哪一侧。
SELECT TRIM(',' FROM ",Hello,"); -- 输出:"Hello"
Substr(char,m,n) 从第m位一直取,取n个。
Concat(expr1,expr2) 把两个字符串连到一起。