字符串函數
語法
MAP STR_TO_MAP(VARCHAR text) MAP STR_TO_MAP(VARCHAR text, VARCHAR listDelimiter, VARCHAR keyValueDelimiter)
功能描述
使用listDelimiter將text分隔成K-V對,然后使用keyValueDelimiter分隔每個K-V對,組裝成MAP返回。默認listDelimiter為(,), keyValueDelimiter為(=)。
入參
參數 | 數據類型 | 說明 |
---|---|---|
text | VARCHAR | 輸入文本。 |
listDelimiter | VARCHAR | 用來將text分隔成K-V對。默認為( ,)。 |
keyValueDelimiter | VARCHAR | 用來分隔每個key和value。默認為( =)。 |
測試語句
SELECT STR_TO_MAP('k1=v1,k2=v2')['k1'] as a FROM T1;
測試結果
a(VARCHAR) |
---|
v1 |
語法
INTEGER POSITION( x IN y)
入參
參數 | 數據類型 |
---|---|
x | VARCHAR |
y | VARCHAR |
功能描述
返回目標字符串x在被查詢字符串y里第一次出現的位置。如果目標字符串x在被查詢字符串y中不存在,返回值為0。
示例
- 測試語句
POSITION('in' IN 'china') as result FROM T1;
- 測試結果
result(INT) 3
語法
VARCHAR TRIM( VARCHAR x )
入參
參數 | 數據類型 |
---|---|
x | VARCHAR |
功能描述
除掉一個字串中的字頭或字尾。最常見的用途是移除字首或字尾的空格。
示例
- 測試語句
SELECT TRIM(' Sample ') as result FROM T1;
- 測試結果
result(VARCHAR) Sample
語法
VARCHAR OVERLAY ( (VARCHAR x PLACING VARCHAR y FROM INT start_position [ FOR INT length ]) )
入參
參數 | 數據類型 |
---|---|
x | VARCHAR |
y | VARCHAR |
start_position | INT |
length(可選) | INT |
功能描述
用y替換x的子串。從start_position開始,替換length+1個字符。
示例
- 測試語句
OVERLAY('abcdefg' PLACING 'hij' FROM 2 FOR 2) as result FROM T1;
- 測試結果
result(VARCHAR) ahijdefg
語法
VARCHAR INITCAP(A)
入參
參數 | 數據類型 |
---|---|
A | VARCHAR |
功能描述
返回字符串,每個字轉換器的第一個字母大寫,其余為小寫。
示例
- 測試數據
var1(VARCHAR) aADvbn - 測試語句
SELECT INITCAP(var1)as aa FROM T1;
- 測試結果
aa(VARCHAR) Aadvbn
語法
VARCHAR REPLACE(str1, str2, str3)
入參
參數 | 數據類型 | 說明 |
---|---|---|
str1 | VARCHAR | 原字符 |
str2 | VARCHAR | 目標字符 |
str3 | VARCHAR | 替換字符 |
功能描述
字符串替換函數。
示例
- 測試數據
str1(INT) str2(INT) str3(INT) alibaba blink blink flink - 測試語句
SELECT REPLACE(str1, str2, str3) as `result` FROM T1;
- 測試結果
result(VARCHAR) alibaba flink