当前位置:网站首页>Character interception triplets of data warehouse: substrb, substr, substring
Character interception triplets of data warehouse: substrb, substr, substring
2022-06-28 00:03: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 :
text
differences
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 allowed
CONTEXT: referenced column: substring
mysql_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 ~
边栏推荐
- 安全省油环保 骆驼AGM启停电池魅力十足
- ASP. Net warehouse purchase, sales and inventory ERP management system source code ERP applet source code
- 超纲练习题不超纲
- Zero foundation self-study SQL course | complete collection of date functions in SQL
- golang使用mongo-driver操作——查(数组相关)
- 虽然TCGA数据库有33种癌症
- golang使用mongo-driver操作——查(基础)
- Google Earth engine (GEE) 03 vector data type
- MySQL character set
- RecyclerView实现分组效果,多种实现方式
猜你喜欢
Zero foundation self-study SQL course | if function
How to quote Chinese documents when writing a foreign language?
halcon之区域:多种区域(Region)特征(6)
Msp430f5529 MCU reads gy-906 infrared temperature sensor
[digital ic/fpga] detect the position of the last matching sequence
Structure de stockage des graphiques
Safe, fuel-efficient and environment-friendly camel AGM start stop battery is full of charm
VMware virtual machine bridging connectivity
智慧风电 | 图扑软件数字孪生风机设备,3D 可视化智能运维
【PCL自学:Segmentation3】基于PCL的点云分割:区域增长分割
随机推荐
Using two stacks to implement queues [two first in first out is first in first out]
Teach you how to transplant tinyriscv to FPGA
[AI application] detailed parameters of NVIDIA geforce RTX 3060
零基础自学SQL课程 | CASE函数
C language character pointer and string initialization
Is it safe for Huatai Securities to open an account online?
Flutter series: Transformers in flutter
自定义MySQL连接池
At the beginning of reading English literature, I would like to ask you how you should read it in the first place?
Zero foundation self-study SQL course | complete collection of SQL basic functions
[PCL self study: Segmentation3] PCL based point cloud segmentation: region growth segmentation
Feign implements path escape through custom annotations
抓出那些重复的基因
Cornernet由浅入深理解
VirtualBox extended dynamic disk size pit
[AI application] detailed parameters of NVIDIA geforce RTX 1080ti
How to solve the problem that the browser developed with CeF3 does not support flash
[PCL self study: pclvisualizer] point cloud visualization tool pclvisualizer
MySQL read / write separation configuration
手把手教你移植 tinyriscv 到FPGA上