基于category字段值更新alcohol_type字段的SQL语句报错求助
问题修正方案
你的UPDATE语句存在语法和拼写错误,修正后的可用语句如下:
UPDATE liquorsales SET alcohol_type = CASE WHEN category BETWEEN 1010000 AND 1019999 THEN 'Whiskey' WHEN category BETWEEN 1020000 AND 1029999 THEN 'Tequila/Mezcals' WHEN category BETWEEN 1030000 AND 1039999 THEN 'Vodka' WHEN category BETWEEN 1040000 AND 1049999 THEN 'Gin' WHEN category BETWEEN 1050000 AND 1059999 THEN 'Brandy' WHEN category BETWEEN 1060000 AND 1069999 THEN 'Rum' ELSE 'Other (Spirits, Liqueurs, Cocktails)' END;
错误点说明:
- 列名拼写错误:你新增的目标列是
alcohol_type,原语句写成了alchohol_type(多了一个字母h),导致数据库无法识别目标列。 - SET语法错误:SET子句必须用
=连接列名和赋值内容,原语句缺少等号,正确格式应为列名 = 赋值表达式。 - 条件语法错误:每个WHEN子句的AND后必须重复指定列名,比如原语句的
AND < 1020000应改为AND category < 1020000。改用BETWEEN ... AND ...可以更简洁准确地表达范围条件,同时避免此类语法问题。 - 文本拼写错误:原语句里的
Tequlia应为Tequila,和你定义的分类名称保持一致。
内容的提问来源于stack exchange,提问作者Marshall
相关产品推荐
相关产品推荐

