前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:https://www.captainai.net/dongkelun

前言

本文总结MySQL和Oracle的字符串截取函数的用法

工作中MySQL和Oracle都用,有时会碰到两种数据库SQL用法的不同,就会上网查一下,但是时间久了,就忘记了,好记性不如烂笔头,所以写个笔记备忘一下~

1、MySql

函数:SUBSTRING 或 SUBSTR

1.1 语法

位置

SUBSTRING(string,position);
SUBSTRING(string FROM position);

位置和长度

SUBSTRING(string,position,length);
SUBSTRING(string FROM position FOR length);

1.2 下标

H e l l 0 W o r l d
正数 1 2 3 4 5 6 7 8 9 10 11
负数 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

1.3 示例详解

1.3.1 位置

position>0,从position(包含)开始

SELECT SUBSTRING('Hello World',1);
SELECT SUBSTRING('Hello World' FROM 7);
Hello World
World

position=0返回空

SELECT SUBSTRING('Hello World',0);

position<0,与position为正时是一样的,下面的sql的效果是相同的

SELECT SUBSTRING('Hello World',-11);
SELECT SUBSTRING('Hello World' FROM -5);

当position的绝对值>LENGTH(string)时,返回空,和position=0时一样

SELECT SUBSTRING('Hello World',12);
SELECT SUBSTRING('Hello World',-12);

1.3.2 位置和长度

position的用法和上面讲的是一样的,下面仅总结length
length>0时返回length个字符数,当length>string的可截取的长度时,只返回可截取的长度

SELECT SUBSTRING('Hello World',1,5);
SELECT SUBSTRING('Hello World',6,20);
Hello
World

length<=0时返回空

SELECT SUBSTRING('Hello World',1,0);
SELECT SUBSTRING('Hello World',1,-20);

下面等价

SELECT SUBSTRING('Hello World',6,20);
SELECT SUBSTRING('Hello World' FROM 6 FOR 20);

可通过LENGTH查看字符串的长度验证(当length>string的可截取的长度时)

SELECT LENGTH(SUBSTRING('Hello World' FROM 6 FOR 20));
6

2、Oracle

函数:SUBSTR

和MySql不同的是没有SUBSTRING

2.1 语法

位置

SUBSTR(string,position);
SUBSTR(string FROM position);

位置和长度

SUBSTR(string,position,length);
SUBSTR(string FROM position FOR length);

2.2 下标

H e l l 0 W o r l d
正数 0或1 2 3 4 5 6 7 8 9 10 11
负数 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

2.3 示例详解

2.3.1 位置

与MySQL一样,position>0和position<0时是一样的效果,参照上面的下标对应即可,不同的是,position=0和position=1的效果是一样的。
下面三个sql效果一样

SELECT SUBSTR('Hello World',0) FROM DUAL;
SELECT SUBSTR('Hello World',1) FROM DUAL;
SELECT SUBSTR('Hello World',-11) FROM DUAL;
Hello World

当position的绝对值>LENGTH(string)时,返回[NULL]

SELECT SUBSTR('Hello World',12) FROM DUAL
SELECT SUBSTR('Hello World',-12) FROM DUAL;
[NULL]

2.3.2 位置和长度

position的用法和上面讲的是一样的,下面仅总结length
length>0时返回length个字符数,当length>string的可截取的长度时,只返回可截取的长度,这点和MySQL相同

SELECT SUBSTR('Hello World',1,5) FROM DUAL;
SELECT SUBSTR('Hello World',6,20) FROM DUAL;
Hello
World

length<=0时返回[NULL],这点和MySQL不同

SELECT SUBSTR('Hello World',1,0) FROM DUAL;
SELECT SUBSTR('Hello World',6,-20) FROM DUAL;
 [NULL]

3 比较总结

最后比较一下MySQL和Oracle的不同

  • 1、 MySQL函数为SUBSTRING 或 SUBSTR,Oracle只有SUBSTR
  • 2、 position=0时MySQL返回空,而Oracle和position=1时一样
  • 3、 当position的绝对值>LENGTH(string)时和length<=0时,MySQL返回空,而Oracle返回[NULL]

MySQL和Oracle字符串截取函数用法总结(比较)相关推荐

  1. ORACLE字符串截取函数trim(),ltrim(),rtrim()

    1.TRIM([[LEADING||TRAILING||BOTH] c2 FROM] c1). 看起来很复杂,理解起来很简单: (1)如果没有指定任何参数则oracle去除c1头尾空格 例如:SELE ...

  2. php截取中文第一个字,php中的一个中文字符串截取函数

    PHP代码: -------------------------------------------------------------------------------- /** ***@Auth ...

  3. php mysql字符串截取比较读取_MySQL_Mysql字符串截取函数SUBSTRING的用法说明,感觉上MySQL的字符串函数截取 - phpStudy...

    Mysql字符串截取函数SUBSTRING的用法说明 感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始截取 ...

  4. mysql截取字符串最后两位_Mysql字符串截取函数SUBSTRING的用法说明

    感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始截取字符串 left(str, length) 说明:le ...

  5. mysql截取字符串后缀_Mysql字符串截取函数SUBSTRING的用法说明

    今天建视图时,用到了MySQL中的字符串截取,很是方便 感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始截 ...

  6. mysql 从第几个字符串开始截取_Mysql字符串截取函数SUBSTRING的用法说明

    感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始截取字符串 left(str, length) 说明:le ...

  7. mysql 从后往前截取指定个数字符串_Mysql字符串截取函数SUBSTRING的用法说明

    函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my ...

  8. mysql substring用法_Mysql字符串截取函数SUBSTRING的用法说明

    函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my ...

  9. mysql截取点前面两位的字符串,Mysql字符串截取函数SUBSTRING的用法说明

    搜索热词 感觉上MysqL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始截取字符串 left(str,length) 说 ...

最新文章

  1. Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)
  2. 《系统集成项目管理工程师》必背100个知识点-48质量控制的老七工具和新七工具...
  3. 【UML】如何记忆UML类图的画法
  4. 2014025630《嵌入式程序设计》第七周学习总结
  5. gitolite 踩坑记
  6. IPM: Mass IP generation can only support 99 numbers of IP at maximum
  7. Liferay7 BPM门户开发之4: Activiti事件处理和监听Event handlers
  8. 标记 (TAG) 您的 k8s 集群资源
  9. linux mysql异地备份工具,Linux中MySQL的异地自动备份
  10. makefile语法_Makefile的语法
  11. 《虚拟化与云计算》作者介绍
  12. AUTOCAD——形位公差如何标注、CAD打断于点的操作
  13. win7系统不能保存文档到服务器,win7 64位系统编辑word文档后无法保存的解决方法...
  14. 创新工场王嘉平开讲:low-level的计算机视觉
  15. 程序员的“九阳神功”——设计模式
  16. 2018年3大UI设计趋势,你知道吗?
  17. python3爬虫豆瓣前一百_Python爬虫基础4-豆瓣top100
  18. Spring启动执行流程
  19. 【排队助手】投屏模式-使用指南
  20. MnTTS: 开源蒙古语语音合成数据集及其基线模型

热门文章

  1. hyper-v上安装群晖DSM5提示格式化磁盘失败解决方法
  2. linux查看cpu实时频率的命令,Linux上如何查看CPU型号及内存频率及其它信息
  3. 灰度重采样的方法分为_重采样 和 重分类
  4. 印象笔记Windows版无法同步(亲测有效)
  5. C语言每日一练——第32天:小球自由下落问题(第10次落地经过多少米,反弹多高?)
  6. 视频MD5修改工具(短视频去重) 自媒体如何解决视频重复问题头条视频去重 今日头条视频消重去...
  7. php radius web认证,内置WEB认证配置(radius认证)
  8. 脚本录制工具__UIRecorder使用说明文档
  9. OpenCV Tutorial: 縮寫(uchar、ushort、Vec)
  10. MPI函数说明及示例