Oracle:concat()、substr()、instr() 简介

一:concat() —— 字符串拼接

格式:concat(字串1, 字串2, 字串3, ...)

1、Mysql中使用 (可以正常使用concat函数来进行多个字段的拼接)

1
2
SELECT CONCAT(字段1,字段2,字段3) FROM table WHERE 1 = 1;
结果: "字段1字段2字段3"

 2、Oracle中使用(不可以使用concat函数来拼接多个字段,只能拼接两个字段,需要使用 "||" 或者 "+" 来连接)

1
2
3
4
5
6
7
8
9
10
11
SELECT CONCAT(字段1 , 段2) FROM table WHERE 1 = 1;
结果一:
"字段1字段2"
  
SELECT 字段1 || 字段2 || 字段3 FROM table WHERE 1 = 1;
结果二:
"字段1字段2字段3"
  
SELECT 字段1 + 字段2 + 字段3 FROM table WHERE 1 = 1;
结果三:
"字段1字段2字段3"

 

二:substr() —— 字符串截取

格式1: substr(string string, int a, int b);

格式2:substr(string string, int a);

1、string需要截取的字符串

2、a起始位置(一般从1开始比较方便记忆,但是0和1都是认为从第一个字符开始截取的)

3、b截取长度(若不写b则代表从a开始后边所有的字符串)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
select substr('HelloWorld',2) value from dual; 
--返回结果:elloWorld,截取从“e”开始之后所有字符
  
select substr('HelloWorld',-2) value from dual; 
--返回结果:ld,从最后一个“d”开始 往回截取2个字符
  
select substr('HelloWorld',2,3) value from dual;
--返回结果:ell,截取从“e”开始3个字符
  
select substr('Hello World',5,3) value from dual;
--返回结果:o W (中间的空格也算一个字符串,结果是:o空格W)
  
select substr('HelloWorld',-2,3) value from dual;
--返回结果:ld (从后面倒数第二位开始往后取2个字符,而不是3个。原因:下面红色 第三个注解)

 

三:instr() —— 字符串查找

格式一:instr( string1, string2 )

格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] )

1、instr(源字符串, 目标字符串, 起始位置i, 检索次数) 起始位置是从1算起的。

2、string2 的值要在string1中查找,是从起始位置第 i 处开始检索,返回检索到string2出现的n次的位置

3、如果查找失败则返回0.

1
2
3
4
5
6
7
8
select instr('helloworld','l') from dual;
--返回结果:3    默认第一次出现“l”的位置
  
select instr('helloworld','l',3,2) from dual; 
--返回结果:4    也就是说:在"helloworld"的第3(l)号位置开始,查找第二次出现的“l”的位置
  
select instr('helloworld','l',-2,3) from dual;
--返回结果:3    也就是说:在"helloworld"的倒数第2(l)号位置开始,往回查找第三次出现的“l”的位置

 

posted @   IT6889  阅读(1026)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示