当前位置:网站首页>Character interception triplets of data warehouse: substrb, substr, substring
Character interception triplets of data warehouse: substrb, substr, substring
2022-06-27 20:23:00 【51CTO】
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
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
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 .

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)
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
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)
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
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)
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
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 ~
边栏推荐
- SQL报了一个不常见的错误,让新来的实习生懵了
- [help] troubleshooting of JVM's high CPU resource consumption
- [bug] there is an error uploading the picture (413 request entity too large)
- [required reading for high-quality products] sub query of Oracle database in Linux system
- 1028 List Sorting
- 安全才是硬道理,沃尔沃XC40 RECHARGE
- 数据库索引
- database engine
- ABAP-SM30删除前检查
- # Leetcode 821. 字符的最短距离(简单)
猜你喜欢
随机推荐
多伦多大学博士论文 | 深度学习中的训练效率和鲁棒性
Database log
刷题笔记-树(Easy)-更新中
【bug】上传图片出现错误(413 Request Entity Too Large)
Crontab's learning essays
Database index
【debug】平台工程接口调试
数智化进入“深水区”,数据治理是关键
Linux system Oracle 19C OEM monitoring management
主键选择选择自增还是序列?
[bug] Lenovo Xiaoxin has a problem. Your pin is unavailable.
键入网址到网页显示,期间发生了什么?
Logcli-loki 命令行工具
数据库优化
安全才是硬道理,沃尔沃XC40 RECHARGE
Safety is the last word, Volvo xc40 recharge
使用MySqlBulkLoader批量插入数据
ABAP-SM30删除前检查
UE4:Build Configuration和Config的解释
最佳实践:优化Postgres查询性能(下)








