暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

查询中使用字符串连接符

SQL新手 2022-12-08
619

在 OceanBase 数据库 MySQL 模式下,字符串连接函数包括 CONCAT() 和 CONCAT_WS() 等。 '||' 默认是表示逻辑运算符"或",在指定 sql_mode 下,'||' 也可以当作字符串连接符使用。

本文通过具体示例介绍如何在查询中使用字符串连接符。

示例 1:查看示例表 cust 的客户姓名

在 OceanBase 数据库 MySQL 模式下的 SQL 语句示例如下:

/*创建示例表并录入合适的数据*/
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 affected
obclient> INSERT INTO cust VALUES(102,'Madeleine','Johnson',23.00);
1 row affected
obclient> INSERT INTO cust VALUES(103,'Michael','Brown',9.05);
1 row affected

obclient> SELECT CONCAT_WS(' ', c_first, c_last) full_name FROM cust ORDER BY c_last LIMIT 2;
+-------------------+
| full_name         |
+-------------------+
| Michael Brown     |
| Madeleine Johnson |
+-------------------+
2 rows in set

示例 2:"||"作为字符串连接符

如果把 MySQL 模式下的变量 sql_mode 值增加一个选项 PIPES_AS_CONCAT ,则 '||' 也会当作字符串连接符。SQL 语句示例如下:

obclient> SET SESSION sql_mode='PIPES_AS_CONCAT,STRICT_TRANS_TABLES,STRICT_ALL_TABLES';
Query OK, 0 rows affected

obclient> SELECT c_first || ' ' || c_last  full_name FROM cust ORDER BY c_last LIMIT 2;
+-------------------+
| full_name         |
+-------------------+
| Michael Brown     |
| Madeleine Johnson |
+-------------------+
2 rows in set
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论