当前位置:网站首页>Character interception triplets of data warehouse: substrb, substr, substring
Character interception triplets of data warehouse: substrb, substr, substring
2022-06-28 02:39:00 【Huawei cloud developer Alliance】
Abstract : Here are some usages and differences of these three functions in character interception .
This article is shared from Huawei cloud community 《GaussDB(DWS) The characters in are used to intercept triplets 》, author : I stand under the northern sky .
stay GaussDB(DWS) There is a function triplet in support of character interception function in , They are substrb()、substr()、substring(), Many people probably only know that they can manipulate string interception , It may not be very clear if we go deeper , Some are parameter truncation length 、 Some parameters are end positions 、 Some parameters can be negative 、 Some can't accept negative parameters ·····
Let's introduce some usages and differences of these three functions in character interception .
summary
substr,substrb,substring Are string interception functions , Can take two or three parameters , Used to extract a character of a specified length starting at a specified position in a string . The function is defined as follows :
Function form : substrb(string, from [, count]) substr(string, from [, count]) substring(string, from [, count]) Parameters to describe : From parameter string Extract substring from ,from Indicates the starting position of the extraction ,count Represents the length of the extracted substring . return type : textdifferences
1. Interception unit
substrb Intercept by byte ,substr/substring Intercept by character . With utf8 Coding, for example ,1 Chinese characters account for 3 Bytes , When using substrb Interception length 3 When you are in a string , Only one character can be intercepted , and substr/substring Three characters can be intercepted .

postgres=# select substrb('hwgs HUAWEI ',3,5),substr('hwgs HUAWEI ',3,5),substring('hwgs HUAWEI ',3,5); substrb | substr | substring---------+----------+----------- gs Hua | gs Huawei | gs Huawei (1 row)2. Interception rules
GaussDB(DWS) Currently, three compatibility modes are supported :ORA、TD and MySQL, Compatible with the function behavior of friends respectively , Improve the user migration experience . In different compatibility modes , The function difference is expressed as :
substrb(string, s[, n]): The behavior of each compatibility mode is consistent

postgres=# select substrb('hwgs HUAWEI ',5,3),substrb('hwgs HUAWEI ',8,3); substrb | substrb---------+--------- Hua | by (1 row)postgres=# select substrb('hwgs HUAWEI ',-6,3),substrb('hwgs HUAWEI ',-3,3); substrb | substrb---------+--------- Male | department (1 row)postgres=# select substrb('hwgs HUAWEI ',5,0),substrb('hwgs HUAWEI ',8,-1); substrb | substrb---------+--------- |(1 row)substr(string, s[, n]):s=0 There are compatible behavior differences

postgres=# select substr('hwgs HUAWEI ',5,3),substr('hwgs HUAWEI ',8,3); substr | substr--------+-------- Huawei | department (1 row)postgres=# select substr('hwgs HUAWEI ',0,3),substr('hwgs HUAWEI ',0,3); substr | substr--------+-------- hwg | hwg(1 row)mysql_db=# select substr('hwgs HUAWEI ',0,3),substr('hwgs HUAWEI ',0,3); substr | substr--------+-------- |(1 row)substring(string, s[, n]):s<=0 and n<0 There are compatible behavior differences

postgres=# select substring('hwgs HUAWEI ',0,3),substring('hwgs HUAWEI ',-1,3); substring | substring-----------+----------- hw | h(1 row)td_db=# select substring('hwgs HUAWEI ',0,3),substring('hwgs HUAWEI ',-1,3); substring | substring-----------+----------- hw | h(1 row)mysql_db=# select substring('hwgs HUAWEI ',0,3),substring('hwgs HUAWEI ',-1,3); substring | substring-----------+----------- | department (1 row)td_db=# select substring('hwgs HUAWEI ',0,-1);ERROR: negative substring length not allowedCONTEXT: referenced column: substringmysql_db=# select substring('hwgs HUAWEI ',0,-1); substring-----------(1 row)Summary
Sum up , Introduce and summarize in detail substrb()、substr()、substring() Differences and usages of , In daily use , If the intercepted string is a multi byte character , Or the interception parameter may be a special value , Then you should pay special attention ; This article , I hope I can help you !
Click to follow , The first time to learn about Huawei's new cloud technology ~
边栏推荐
- Machine learning (x) reinforcement learning
- Jenkins - groovy postbuild plug-in enriches build history information
- 数据治理与数据标准
- Cvpr22 collected papers | hierarchical residual multi granularity classification network based on label relation tree
- 匿名挂载&具名挂载
- ScheduledThreadPoolExecutor源码解读(二)
- 【历史上的今天】6 月 17 日:术语“超文本”的创造者出生;Novell 首席科学家诞生;探索频道开播
- 【历史上的今天】6 月 18 日:京东诞生;网店平台 Etsy 成立;Facebook 发布 Libra 白皮书
- Flask基础:模板渲染+模板过滤使用+控制语句
- 【历史上的今天】6 月 25 日:笔记本之父诞生;Windows 98 发布;通用产品代码首次商用
猜你喜欢

【历史上的今天】6 月 5 日:洛夫莱斯和巴贝奇相遇;公钥密码学先驱诞生;函数语言设计先驱出生

【历史上的今天】6 月 7 日:Kubernetes 开源版本发布;《魔兽世界》登陆中国;分组交换网络发明者出生

Machine learning (x) reinforcement learning

数智学习|湖仓一体实践与探索

How to realize red, green and yellow traffic lights in ros+gazebo?

【历史上的今天】6 月 12 日:美国进入数字化电视时代;Mozilla 的最初开发者出生;3Com 和美国机器人公司合并

Embedded must learn, detailed explanation of hardware resource interface -- Based on arm am335x development board (Part 1)

SQL injection Bypass (2)

简单文件传输协议TFTP

设计电商秒杀系统
随机推荐
JS implementation clock
Teach you how to realize pynq-z2 bar code recognition
SQL 注入绕过(三)
11 timers for STM32F103
Truth table of common anode digital tube
Jenkins - email notification plug-in
CRF+BiLSTM代码分步骤解读
KVM related
【历史上的今天】6 月 2 日:苹果推出了 Swift 编程语言;电信收购联通 C 网;OS X Yosemite 发布
一种低成本增长私域流量,且维护简单的方法
原理图合并中的技巧
【云原生】-Docker安装部署分布式数据库 OceanBase
技术人员如何成为技术领域专家
ScheduledThreadPoolExecutor源码解读(二)
stm32f1中断介绍
General timer and interrupt of stm32
【方块编码】基于matlab的图像方块编码仿真
[JS reverse hundreds of examples] I love to solve 2022 Spring Festival problems and receive red envelopes
Starting sequence of Turing machine
贪吃蛇 C语言