全部產品
Search
文件中心

Lindorm:字串函數

更新時間:Jul 06, 2024

本文介紹Lindorm支援的字串函數的用法及樣本。

引擎與版本

字串函數適僅用於寬表引擎,且引擎版本需為2.5.1.1及以上版本。

說明

如何查看和升級目前的版本,請參見寬表引擎版本說明升級小版本

函數列表

Lindorm支援的字串函數如下表所示:

函數

說明

CONCAT

將多個字串拼接成一個新的字串。

LENGTH

計算字串的長度。

LOWER

將字串中所有的字母都轉換為小寫字母。

MD5

計算指定字串的MD5值。

SHA256

計算指定字串的SHA256編碼值。

REPLACE

將匹配指定規則的子串替換為新的字串。

REVERSE

返回逆序的字串。

REGEXP_REPLACE

從字串指定位置開始,將匹配指定規則的子串替換為新的字串。

REGEXP_SUBSTR

返回從字串指定位置開始,匹配指定規則的子串。

SUBSTR

返回字串中指定長度的子串。

START_WITH

判斷字串的首碼是否為指定字串。

TRIM

刪除字串前後的空格。

UPPER

將字串中所有的字母都轉換為大寫字母。

CONCAT函數

將多個字串拼接成一個新的字串。

文法

CONCAT('string1','string2',...,'stringN')

參數說明

參數

是否必填

說明

'string1','string2',...,'stringN'

需要拼接的字串,多個字串之間用英文逗號(,)分隔。

樣本

將單獨的字串abc進行拼接,組成一個新的字串abc

SELECT concat('a','b','c') AS val;

返回結果:

+--------+
| val    |
+--------+
| abc    |
+--------+

返回結果為拼接後的新字串,且字串中間無間隔符。

LENGTH函數

計算字串的長度。

文法

LENGTH('string')

參數說明

參數

是否必填

說明

string

待匹配的字串。

樣本

計算字串abc的長度。

SELECT length('abc') AS len;

返回結果:

+-----+
| len |
+-----+
| 3   |
+-----+

返回結果為3,表示字串abc的長度為3。

LOWER函數

將字串中所有的字母都轉換為小寫字母。

文法

LOWER('string')

參數說明

參數

是否必填

說明

string

待轉換的字串。

樣本

  • 樣本1:將字串ABC中所有的字母都轉換為小寫字母。

    SELECT lower('ABC') AS val;

    返回結果:

    +--------+
    | val    |
    +--------+
    | abc    |
    +--------+

    返回結果為abc,表示已將字串ABC中所有的大寫字母都轉換為小寫字母abc

  • 樣本2:將字串Abc中所有的字母都轉換為小寫字母。

    SELECT lower('Abc') AS val;

    返回結果:

    +--------+
    | val    |
    +--------+
    | abc    |
    +--------+

    返回結果為abc,表示已將字串Abc中所有的大寫字母都轉換為小寫字母abc

MD5函數

計算指定字串的MD5值。

文法

MD5('string')

參數說明

參數

是否必填

說明

string

待匹配的字串。

樣本

計算指定字串abc的MD5值。

SELECT md5('abc') AS val;

返回結果:

+----------------------------------+
|               val                |
+----------------------------------+
| 900150983cd24fb0d6963f7d28e17f72 |
+----------------------------------+

返回結果為字串abc的MD5值。

SHA256函數

計算指定字串的SHA256編碼值。

文法

SHA256('string')

參數說明

參數

是否必填

說明

string

待編碼的字串。

樣本

假設表結構及表中資料如下:

-- 建立樣本表
CREATE TABLE tb (id int, name varchar, address varchar, PRIMARY KEY(id, name)); 

-- 寫入資料
UPSERT INTO tb (id, name, address) VALUES (1, 'jack',  'hz');

查詢id值為1的行中對應的name列資料的SHA256編碼值。

SELECT sha256(name) AS sc FROM tb WHERE id=1;

返回結果:

+------------------------------------------------------------------+
|                                sc                                |
+------------------------------------------------------------------+
| 31611159e7e6ff7843ea4627745e89225fc866621cfcfdbd40871af4413747cc |
+------------------------------------------------------------------+

返回結果為字串jack的SHA256編碼值。

REPLACE函數

將匹配指定規則的子串替換為新的字串。

文法

REPLACE('string','from_str','to_str')

參數說明

參數

是否必填

說明

string

待匹配的字串。

from_str

指定字串。

to_str

替換的字串。

樣本,

  • 樣本1:將字串abc中所有匹配bc的子串都替換為cd

    SELECT replace('abc','bc','cd') AS val;

    返回結果:

    +-----+
    | val |
    +-----+
    | acd |
    +-----+

    返回結果為acd,表示已將字串abc中匹配bc的子串替換為cd

  • 樣本2:將字串abcbc中所有匹配bc的子串都替換為cd

    SELECT replace('abcbc', 'bc', 'cd') AS val;

    返回結果:

    +-------+
    |  val  |
    +-------+
    | acdcd |
    +-------+

    返回結果為acdcd,表示已將字串abcbc中匹配bc的子串替換為cd

REVERSE函數

返回逆序的字串。

文法

REVERSE('string')

參數說明

參數

是否必填

說明

string

待匹配的字串。

樣本

將字串abc逆序輸出。

SELECT reverse('abc') AS val;

返回結果:

+-----+
| val |
+-----+
| cba |
+-----+

返回結果為cba ,表示已將字串abc逆序輸出。

REGEXP_REPLACE函數

從字串指定位置開始,將匹配指定規則的子串替換為新的字串。

文法

REGEXP_REPLACE('string',pat,rep,[pos])

參數說明

參數

是否必填

說明

string

待匹配的字串。

pattern

Regex。

rep

替換的字串。

position

開始匹配字串的位置,取值為大於等於1的整數。不指定該參數時,預設從第1個字元開始匹配。

樣本

  • 樣本1:不指定pos參數。預設從第1個字元開始匹配,並將匹配b的子串替換為c

    SELECT regexp_replace('abc', 'b', 'c') AS val;

    返回結果:

    +-----+
    | val |
    +-----+
    | acc |
    +-----+

    返回結果為acc,表示已將字串abc中匹配b的子串替換為c

  • 樣本2:指定pos參數。從第2個字元開始匹配,並將匹配b的子串替換為c

    SELECT regexp_replace('abcbc', 'b', 'c', 2) AS val;

    返回結果:

    +-------+
    |  val  |
    +-------+
    | acccc |
    +-------+

acccc,表示已將字串abcbc中第2個字元至字串末尾匹配b的子串替換為c

  • 樣本3:指定pos參數。從第3個字元開始匹配,並將匹配b的子串替換為c

    SELECT regexp_replace('abcbc', 'b', 'c', 3) AS val;

    返回結果:

    +-------+
    |  val  |
    +-------+
    | abccc |
    +-------+

    返回結果為abccc,表示已將字串abcbc中第3個字元至字串末尾匹配b的子串替換為c

REGEXP_SUBSTR函數

返回從字串指定位置開始,匹配指定規則的子串。

文法

REGEXP_SUBSTR('string', pat, [pos])

參數說明

參數

是否必填

說明

string

待匹配的字串。

pattern

Regex。

position

開始匹配字串的位置,取值為大於等於1的整數。不指定該參數時,預設從第1個字元開始匹配。

樣本

  • 樣本1:指定pos參數,從字串abc的第3個字元開始匹配b的子串。

     SELECT regexp_substr('abc', 'b', 3) AS val;

    返回結果:

    +-----+
    | val |
    +-----+
    |     |
    +-----+

    返回結果為,表示從字串第3個字元開始無匹配b的子串。

  • 樣本2:不指定pos參數,預設從字串abc的第1個字元開始匹配b的子串。

    SELECT regexp_substr('abc', 'b') AS val;

    返回結果:

    +-----+
    | val |
    +-----+
    | b   |
    +-----+

    返回結果為b,表示從字串第1個字元開始截取匹配b的子串。

SUBSTR函數

返回字串中指定長度的子串。

文法

SUBSTR( string, pos, [len])

參數說明

參數

是否必填

說明

string

待匹配的字串。

position

開始截取字串的位置,取值為大於等於1的整數。

len

從左向右截取字串的長度,取值為大於等於1的整數。不指定該參數時,則預設返回pos參數指定位置到字串末尾的子串。

樣本

  • 樣本1:不指定len參數,預設返回字串abc第2個字元到字串末尾的子串。

    SELECT substr('abc', 2) AS val;

    返回結果:

    +-----+
    | val |
    +-----+
    | bc  |
    +-----+

    返回結果為bc,表示字串abc第2個字元至字串末尾的子串。

  • 樣本2:指定len參數,返回字串abc第1個字元到第2個字元的子串。

    SELECT substr('abc', 1, 2) AS val;

    返回結果:

    +-----+
    | val |
    +-----+
    | ab  |
    +-----+

    返回結果為ab,表示字串abc第1個字元到第2個字元的子串。

START_WITH函數

判斷字串的首碼是否為指定字串。

文法

START_WITH('string1', 'string2')

參數說明

參數

是否必填

說明

string1

待匹配的字串。

string2

指定字串。

樣本

  • 樣本1:判斷字串abc的首碼是否為指定字串ab

    SELECT start_with('abc', 'ab') AS val;

    返回結果:

    +--------+
    | val    |
    +--------+
    | true   |
    +--------+

    返回結果為true,表示字串abc的首碼是指定字串ab

  • 樣本2:判斷字串abc的首碼是否為指定字串bc

    SELECT start_with('abc', 'bc') AS val;

    返回結果:

    +--------+
    | val    |
    +--------+
    | false  |
    +--------+

    返回結果為false,表示字串abc的首碼不是指定字串bc

TRIM函數

刪除字串前後的空格。

文法

TRIM('string')

參數說明

參數

是否必填

說明

string

待匹配的字串。

樣本

刪除指定字串 abc 前後的空格。

SELECT trim(' abc    ') AS str;

返回結果:

+-----+
| str |
+-----+
| abc |
+-----+

返回結果為刪除前後空格後的結果。

UPPER函數

將字串中所有的字母都轉換為大寫字母。

文法

UPPER('string')

參數說明

參數

是否必填

說明

string

待轉換的字串。

樣本

  • 樣本1:將字串abc中所有的字母都轉換為大寫字母。

    SELECT upper('abc') AS val;

    返回結果:

    +--------+
    | val    |
    +--------+
    | ABC    |
    +--------+

    返回結果為ABC,表示已將字串abc中所有的小寫字母轉換為大寫字母ABC

  • 樣本2:將字串aBC中所有的字母都轉換為大寫字母。

    SELECT upper('aBC') AS val;

    返回結果:

    +--------+
    | val    |
    +--------+
    | ABC    |
    +--------+

    返回結果為ABC,表示已將字串aBC中所有的小寫字母都轉換為大寫字母ABC