語法
VARCHAR REPEAT(VARCHAR str, INT n)
入參
參數 | 數據類型 | 說明 |
---|---|---|
str | VARCHAR | 重復字符串值。 |
n | INT | 重復次數。 |
功能描述
返回以字符串值為str,重復次數為N的新的字符串。如果參數為null時,則返回null。如果重復次數為0或負數,則返回空串。
示例
- 測試數據
str(VARCHAR) n(INT) J 9 Hello 2 Hello -9 null 9 - 測試語句
SELECT REPEAT(str,n) as var1 FROM T1;
- 測試結果
var1(VARCHAR) JJJJJJJJJ HelloHello 空 null
語法
VARCHAR SUBSTRING(VARCHAR a, INT start) VARCHAR SUBSTRING(VARCHAR a, INT start, INT len)
入參
參數 | 數據類型 | 說明 |
---|---|---|
a | VARCHAR | 指定的字符串。 |
start | INT | 在字符串a中開始截取的位置。 |
len | INT | 類截取的長度。 |
功能描述
獲取字符串子串。截取從位置start開始,長度為len的子串。如果未指定len,則截取到字符串結尾。start從1開始,start為0當1看待,為負數時表示從字符串末尾倒序計算位置。
示例
- 測試數據
str(VARCHAR) nullstr(VARCHAR) k1=v1;k2=v2 null - 測試語句
SELECT SUBSTRING('', 222222222) as var1, SUBSTRING(str, 2) as var2, SUBSTRING(str, -2) as var3, SUBSTRING(str, -2, 1) as var4, SUBSTRING(str, 2, 1) as var5, SUBSTRING(str, 22) as var6, SUBSTRING(str, -22) as var7, SUBSTRING(str, 1) as var8, SUBSTRING(str, 0) as var9, SUBSTRING(nullstr, 0) as var10 FROM T1;
- 測試結果
var1(VARCHAR) var2(VARCHAR) var3(VARCHAR) var4(VARCHAR) var5(VARCHAR) var6(VARCHAR) var7(VARCHAR) var8(VARCHAR) var9(VARCHAR) var10(VARCHAR) 空 1=v1;k2=v2 v2 v 1 空 空 k1=v1;k2=v2 k1=v1;k2=v2 null
語法
VARCHAR REVERSE(VARCHAR str)
入參
參數 | 數據類型 | 說明 |
---|---|---|
str | VARCHAR | 普通字符串值。 |
功能描述
反轉字符串,返回字符串值的相反順序。如果任一參數為null時,則返回null。
示例
- 測試數據
str1(VARCHAR) str2(VARCHAR) str3(VARCHAR) str4(VARCHAR) iPhoneX Alibaba World null - 測試語句
SELECT REVERSE(str1) as var1,REVERSE(str2) as var2, REVERSE(str3) as var3,REVERSE(str4) as var4 FROM T1;
- 測試結果
var1(VARCHAR) var2(VARCHAR) var3(VARCHAR) var4(VARCHAR) XenohPi ababilA dlroW null
語法
VARCHAR SPLIT_INDEX(VARCHAR str, VARCHAR sep, INT index)
入參
參數 | 數據類型 | 說明 |
---|---|---|
str | VARCHAR | 被分隔的字符串。 |
sep | VARCHAR | 分隔符的字符串。 |
index | INT | 截取的字段位置。 |
功能描述
以sep
作為分隔符,將字符串str
分隔成若干段,取其中的第index
段。index
從0開始,如果取不到字段,則返回null。如果任一參數為NULL,則返回null。
示例
- 測試數據
str(VARCHAR) sep(VARCHAR) index(INT) Jack,John,Mary , 2 Jack,John,Mary , 3 Jack,John,Mary null 0 null , 0 - 測試語句
SELECT SPLIT_INDEX(str, sep, index) as var1 FROM T1;
- 測試結果
var1(VARCHAR) Mary null null null
語法
VARCHAR REGEXP_REPLACE(VARCHAR str, VARCHAR pattern, VARCHAR replacement)
入參
參數 | 數據類型 | 說明 |
---|---|---|
str | VARCHAR | 指定的字符串。 |
pattern | VARCHAR | 被替換的字符串。 |
replacement | VARCHAR | 用於替換的字符串。 |
注意 請您按照Java代碼編寫正則常量。Codegen會自動將SQL常量字符串轉化為Java代碼。描述一個數值
(\d)
的正則表達式和Java中一樣,為
'\d'
。
功能描述
用字符串replacement
替換字符串str
中正則模式為pattern
的部分,並返回新的字符串。如果參數為NULL或者正則不合法時,則返回NULL。
示例
- 測試數據
str1(VARCHAR) pattern1(VARCHAR) replace1(VARCHAR) 2014-03-13 - 空 NULL - 空 2014-03-13 - NULL 2014-03-13 空 s 2014-03-13 ( s 100-200 (\d+) num - 測試語句
SELECT REGEXP_REPLACE(str1, pattern1, replace1) as result FROM T1;
- 測試結果
result(VARCHAR) 20140313 null null 2014-03-13 null num-num
語法
VARCHAR REGEXP_EXTRACT(VARCHAR str, VARCHAR pattern, INT index)
入參
參數 | 數據類型 | 說明 |
---|---|---|
str | VARCHAR | 指定的字符串。 |
pattern | VARCHAR | 匹配的字符串。 |
index | INT | 第幾個被匹配的字符串。 |
注意 正則常量請按照Java代碼來寫。CodeGen會將SQL常量字符串自動轉化為Java代碼。如果要描述一個數字
\d,需要寫成'\d',即和Java中正則相同。
功能描述
使用正則模式Pattern匹配抽取字符串Str中的第Index個子串,Index從1開始,正則匹配提取。當參數為NULL或者正則不合法時,則返回NULL。
示例
- 測試數據
str1 (VARCHAR) pattern1(VARCHAR) index1 (INT) foothebar foo(.*?)(bar) 2 100-200 (\\d+)-(\\d+) 1 null foo(.*?)(bar) 2 foothebar null 2 foothebar 空 2 foothebar ( 2 - 測試語句
SELECT REGEXP_EXTRACT(str1, pattern1, index1) as result FROM T1;
- 測試結果
result(VARCHAR) bar 100 null null null null