如何在SQLite中为指定行的查询结果添加附加标签?
为食品名称按类别添加标签的SQL查询方案
你可以通过条件判断结合字符串拼接的方式实现需求,根据kind字段的值决定是否在名称后追加(vegetable)标签,以下是主流数据库的具体实现:
通用CASE语句实现
这是跨数据库兼容的写法,用CASE做条件判断,配合字符串拼接函数:
SELECT CASE WHEN kind = 'vegetable' THEN CONCAT(name, ' (vegetable)') ELSE name END AS food_name FROM food;
各数据库简化写法
MySQL/MariaDB
用IF()函数简化条件判断:
SELECT IF(kind = 'vegetable', CONCAT(name, ' (vegetable)'), name) AS food_name FROM food;
PostgreSQL
支持直接用||运算符拼接字符串:
SELECT CASE WHEN kind = 'vegetable' THEN name || ' (vegetable)' ELSE name END AS food_name FROM food;
SQL Server
使用+运算符或CONCAT()函数均可:
SELECT CASE WHEN kind = 'vegetable' THEN name + ' (vegetable)' ELSE name END AS food_name FROM food;
执行上述语句后,就能得到你期望的结果:
apple banana lettuce (vegetable) onion (vegetable)
内容的提问来源于stack exchange,提问作者Hiiiii
相关产品推荐
相关产品推荐

