LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

在MySQL、SQL Server、Oracle、Postgre等不同数据库中如何用SQL将字符串字段进行换行拼接?

admin
2025年3月31日 9:49 本文热度 109

你在工作中是否也有遇到这样的需求?比如将数据库中的姓名和地址合并展示,但挤在一行太杂乱或者太长?

今天分享这篇文章,主要是我在工作中遇到了一个图表可视化的问题,为了实现更加美观的效果,我需要将数据中的两个字段进行拼接,并且能够分行展示。

01
数据准备

假设有一张客户信息表data_learning.user_info(案例建表语句见文末附录),包含以下字段:

  • 姓名(如“林赛”)

  • 地址(如“浙江省杭州市”)

你希望将这两个字段合并为一列,并在中间插入换行符,效果如下:

林赛

浙江省杭州市

原始报表如下:

   

02
SQL实现

1. MySQL

使用CONCAT函数 + CHAR(10)表示换行符:

SELECT   CONCAT(name, CHAR(10), address) AS customer_info FROM   data_learning.user_info ;

查询结果如下:

未显示换行的原因:大部分 SQL 客户端(如 MySQL Workbench、命令行)默认不渲染换行符为实际换行,而是显示为空格或特殊符号(如 

解决方法:导出数据到文件查看换行。将查询结果导出为文本文件(如 CSV),用支持换行的编辑器(Notepad++、VS Code)打开:

    

下面不同数据库可能也会遇到上述相似的问题,导出文件查看即可。

2.PostgreSQL

用 || 连接符+E'\n'直接表示换行符:

SELECT     name || E'\n' || address AS customer_info            FROM data_learning.user_info            ;

查询结果如下:

看着只有一个姓名,但是只要双击结果行,就能看到完整的换行后的结果:   


3.SQL Server

换行符需用CHAR(13)+CHAR(10)(兼容Windows系统):

SELECT   name + CHAR(13+ CHAR(10+ address AS customer_info FROM data_learning.user_info;


4.Oracle

||连接符和CHR(10)

SELECT                  name || CHR(10|| address AS customer_info          FROM data_learning.user_info            ;          

如需进一步了解字符串拼接函数,可以查看之前分享的文章:SQL常用字符串处理函数及案例。       

03

附录

本文案例表建表语句:

-- 请根据所使用的数据库灵活调整数据类型            create table data_learning.user_info            (  name varchar(255),   address  varchar(255));              insert into data_learning.user_info values            ('林赛','浙江省杭州市'),            ('张三','江苏省苏州市'),            ('李四','江苏省南京市'),            ('王五','安徽省合肥市');  


该文章在 2025/4/1 11:36:55 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved