You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中如何在拼接的两姓名列之间添加空格?

解决SQL拼接姓名无空格的问题

执行以下SQL查询时,通过CONCAT函数拼接actor表的first_name和last_name列,得到的姓名结果没有空格(例如PenelopeGuiness),需要调整为带空格的格式(例如Penelope Guiness)。

原查询代码:

SELECT CONCAT(a.first_name, a.last_name), f.title, f.description, f.length
FROM actor a
JOIN film_actor fa
ON a.actor_id = fa.actor_id
JOIN film f
ON f.film_id = fa.film_id

解决方案

方法1:修改CONCAT函数添加空格

直接在CONCAT的参数列表中插入空格字符串' ',将姓和名分隔开:

SELECT CONCAT(a.first_name, ' ', a.last_name), f.title, f.description, f.length
FROM actor a
JOIN film_actor fa
ON a.actor_id = fa.actor_id
JOIN film f
ON f.film_id = fa.film_id

方法2:使用CONCAT_WS函数(推荐)

如果你的数据库支持CONCAT_WS(比如MySQL、PostgreSQL等),可以用这个更简洁的函数。CONCAT_WS意为"Concatenate With Separator",第一个参数指定分隔符,后续参数是要拼接的字段:

SELECT CONCAT_WS(' ', a.first_name, a.last_name), f.title, f.description, f.length
FROM actor a
JOIN film_actor fa
ON a.actor_id = fa.actor_id
JOIN film f
ON f.film_id = fa.film_id

这个函数的优势在于,当其中某个字段为NULL时,会自动跳过该字段而不会导致整个拼接结果为NULL,实用性更强。

内容的提问来源于stack exchange,提问作者m.aljundi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:15:32