当前位置:网站首页>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 :
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 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 ~
边栏推荐
- Structure de stockage des graphiques
- VMware virtual machine bridging connectivity
- Detailed explanation of MATLAB axis coordinate axis related settings
- Chapter 2 integrated mp
- C language character pointer and string initialization
- c语言之字符串数组
- Grab those duplicate genes
- Using two stacks to implement queues [two first in first out is first in first out]
- 【AI应用】NVIDIA GeForce RTX 3060的详情参数
- Chenyun pytorch learning notes_ Build RESNET with 50 lines of code
猜你喜欢

【Try to Hack】veil-evasion免杀

Zero foundation self-study SQL course | complete collection of date functions in SQL

安全省油環保 駱駝AGM啟停電池魅力十足

ClickOnce error deploying ClickOnce application - the reference in the manifest does not match the identity of the downloaded assembly

Chenyun pytorch learning notes_ Build RESNET with 50 lines of code

Cornernet由浅入深理解

零基础自学SQL课程 | CASE函数

【PCL自学:PCLPlotter】PCLPlotter绘制数据分析图

Local visualization tool connects to redis of Alibaba cloud CentOS server

2022 PMP project management examination agile knowledge points (3)
随机推荐
数仓的字符截取三胞胎:substrb、substr、substring
[PCL self study: pclplotter] pclplotter draws data analysis chart
MySQL企业级参数调优实践分享
Is it safe to open a stock account through the account opening QR code of CICC securities manager? Or is it safe to open an account in a securities company?
An analysis of C language functions
通过中金证券经理的开户二维码开股票账户安全吗?还是去证券公司开户安全?
本地可视化工具连接阿里云centOS服务器的redis
Mise en œuvre du pool de Threads: les sémaphores peuvent également être considérés comme de petites files d'attente
Feign通过自定义注解实现路径的转义
QStringList 的学习笔记
2022 PMP project management examination agile knowledge points (3)
往前一步是优秀,退后一步是懵懂
【PCL自学:Segmentation3】基于PCL的点云分割:区域增长分割
線程池實現:信號量也可以理解成小等待隊列
How to find Chinese documents corresponding to foreign documents?
华泰证券在网上开户安全吗?
Teach you how to transplant tinyriscv to FPGA
[AI application] detailed parameters of NVIDIA Tesla v100-pcie-32gb
SQL中IS NOT NULL与!=NULL的区别
计数质数[枚举 -> 空间换时间]