基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
查询中使用字符串函数
更新时间:2023-07-18 17:25:58
常用的字符串函数有求字符串长度函数 LENGTH() 和 CHAR_LENGTH()、字符串截取函数 SUBSTR()、字符串拼接函数 CONCAT() 和 CONCAT_WS()、字符串转大小写函数 UPPER() 和 LOWER()、字符串删除前后缀函数 LTRIM()、RTRIM() 和 TRIM() 等。
本文通过具体示例介绍如何在查询中使用字符串函数。
示例:使用字符串函数 CONCAT()、CONCAT_WS()、UPPER() 和 LOWER() 查询数据
/*创建示例表并录入合适的数据*/
obclient> CREATE TABLE cust (
c_id INTEGER,
c_first VARCHAR(20),
c_last VARCHAR(20),
c_credit DECIMAL(10, 2)
);
Query OK, 0 rows affected
obclient> INSERT INTO cust VALUES(101,'Ann','Smith',16.10);
1 row in set
obclient> INSERT INTO cust VALUES(102,'Madeleine','Johnson',23.00);
1 row in set
obclient> INSERT INTO cust VALUES(103,'Michael','Brown',9.05);
1 row in set
obclient> SELECT CHAR_LENGTH(c_last) namelength
, CONCAT(c_first, c_last) full_name1
, CONCAT_WS('_', c_first, c_last) full_name2
, SUBSTR(c_last, 3)
, UPPER(c_last)
FROM cust ORDER BY c_last LIMIT 3;
+------------+------------------+-------------------+-------------------+---------------+
| namelength | full_name1 | full_name2 | SUBSTR(c_last, 3) | UPPER(c_last) |
+------------+------------------+-------------------+-------------------+---------------+
| 5 | MichaelBrown | Michael_Brown | own | BROWN |
| 7 | MadeleineJohnson | Madeleine_Johnson | hnson | JOHNSON |
| 5 | AnnSmith | Ann_Smith | ith | SMITH |
+------------+------------------+-------------------+-------------------+---------------+
3 rows in set
需要注意的是,在 OceanBase 数据库 MySQL 模式下,字符串长度函数 LENGTH() 的长度单位是字节,CHAR_LENGTH() 函数的字符串长度单位是字符。示例如下:
obclient> SELECT CHAR_LENGTH('中国'), LENGTH('中国'),CHAR_LENGTH('hello');
+-----------------------+------------------+----------------------+
| CHAR_LENGTH('中国') | LENGTH('中国') | CHAR_LENGTH('hello') |
+-----------------------+------------------+----------------------+
| 2 | 6 | 5 |
+-----------------------+------------------+----------------------+
1 row in set