本文介绍流引擎内建函数中的字符串函数。
LEN
返回指定列字符串的字符数。
语法
LEN(column_name)
示例
SELECT goods_name, LEN(goods_name) AS name_length FROM orders;
返回结果如下:+--------------+-------------+
| goods_name | name_length |
+--------------+-------------+
| goods_name_3 | 12 |
IFNULL
如果expr1
的值为空,则返回expr2
的值。如果expr1
的值不为空,则返回expr1
的值。
语法
IFNULL(expr1, expr2)
说明
expr1
和expr2
的数据类型相同。- 如果
expr1
和expr2
的值都为空,则返回空。
示例
SELECT comment, IFNULL(comment, 'no comment') AS new_comment FROM orders;
返回结果如下:+-----------+-------------+
| comment | new_comment |
+-----------+-------------+
| very good | very good |
| | no comment |
TRIM
删除指定列中的字符串开始和结尾处的空格。
语法
TRIM(column_name)
示例
SELECT goods_name, TRIM(goods_name) AS new_goods_name FROM orders;
返回结果如下:+--------------+----------------+
| goods_name | new_goods_name |
+--------------+----------------+
| goods_name_3 | goods_name_3 |
CONCAT
将两个字符串按顺序合并为一个字符串。
语法
CONCAT(str1, str2)
示例
SELECT goods_name, CONCAT(goods_name, '_type1') AS new_goods_name FROM orders;
返回结果如下:+--------------+-------------------+
| goods_name | new_goods_name |
+--------------+-------------------+
| goods_name_3 | goods_name_3_typ1 |
SUBSTRING
将字符串按照指定位置从左向右截取,截取长度为len的子字符串。
语法
SUBSTRING(string,offset,len)
说明
offset
为字符串开始截取的位置。字符串的索引值从1开始。len
为截取长度。
示例
SELECT goods_name, SUBSTRING(goods_name, 1, 4) AS new_goods_name FROM orders;
返回结果如下:+--------------+----------------+
| goods_name | new_goods_name |
+--------------+----------------+
| goods_name_3 | good |
UCASE
将文本字符串的字母转换为大写字母。
语法
UCASE(column_name)
示例
SELECT goods_name, UCASE(goods_name) AS new_goods_name FROM orders;
返回结果如下:+--------------+----------------+
| goods_name | new_goods_name |
+--------------+----------------+
| goods_name_3 | GOODS_NAME_3 |
LCASE
将文本字符串的字母转换为小写字母。
语法
LCASE(column_name)
示例
SELECT goods_name, LCASE(goods_name) AS new_goods_name FROM orders;
返回结果如下:+--------------+----------------+
| goods_name | new_goods_name |
+--------------+----------------+
| GOODS_NAME_3 | goods_name_3 |
EXTRACTJSONFIELD
返回指定的JSON列中指定路径的值。
语法
EXTRACTJSONFIELD(column_name, json_path)
说明
json_path
的格式请参见JSONPath。
示例
SELECT ext_info, EXTRACTJSONFIELD(ext_info,'$.comment.rate') AS rate FROM orders;
返回结果如下:+-------------------------------------+-----------+
| ext_info | rate |
+-------------------------------------+-----------+
| {"comment":{"rate":"5","msg":"good"}| 5 |