如何用SQL生成标记特定词汇出现的布尔值新列?现有语句报错求助
SQL语法错误修正:创建标记是否包含特定词汇的新列
你的SQL报错核心原因是CASE表达式放错位置了——它得跟在SELECT后面的字段列表里,不能直接扔在FROM表名之后。
正确的SQL写法
select *, case when column1 like '%word%' then 'True' else 'False' end as has_target_word from your_table;
几个注意点
- 把CASE表达式加到
SELECT的字段里,用逗号和前面的*隔开就行 - 新列名
has_target_word可以改成你自己想要的名字,your_table替换成实际表名 - 如果你的数据库支持布尔类型(比如PostgreSQL、MySQL 8.0以上),还能更简化,直接返回布尔值:
select *, column1 like '%word%' as has_target_word from your_table;
内容的提问来源于stack exchange,提问作者Anamaria
相关产品推荐
相关产品推荐

