如何在SQL中使用字段值拼接字符串创建新变量(新列)
问题原因
你的语句错误出现在拼接表达式末尾多了多余的||运算符,||作为字符串拼接运算符仅允许放在两个待拼接的内容之间,不能作为表达式的结尾。
对应解法
适配支持||拼接的数据库(PostgreSQL、Oracle、SQLite)
直接删掉多余的||即可:
SELECT a.customer_name, num_favorite_actor || ' multiple actors' AS favorite_actor, num_favorite_actor FROM customer_actor3 AS a
全数据库兼容写法(推荐,适配MySQL等不支持||拼接的数据库)
使用标准SQL的CONCAT函数实现拼接,兼容性更强:
SELECT a.customer_name, CONCAT(num_favorite_actor, ' multiple actors') AS favorite_actor, num_favorite_actor FROM customer_actor3 AS a
空值适配补充
如果num_favorite_actor字段存在NULL值,直接拼接会导致结果返回NULL,可以搭配COALESCE函数处理空值:
SELECT a.customer_name, CONCAT(COALESCE(num_favorite_actor, '0'), ' multiple actors') AS favorite_actor, num_favorite_actor FROM customer_actor3 AS a
内容的提问来源于stack exchange,提问作者Dustin
相关产品推荐
相关产品推荐

