Oracle如何使用ALTER TABLE为Shoe表添加鞋码分类计算列?
解决方案
完全不需要手动录入分类值,使用UPDATE语句结合CASE WHEN条件判断即可批量完成所有记录的分类赋值。
通用SQL实现代码
UPDATE Shoe SET Size = CASE WHEN `Shoe size` BETWEEN 32 AND 34 THEN 'Small' WHEN `Shoe size` = 36 THEN 'Medium' WHEN `Shoe size` >= 38 THEN 'Big' END;
注意事项
- 不同数据库对带空格的字段名有不同的包裹语法,可按需调整:
- MySQL/MariaDB:用反引号包裹
`Shoe size` - SQL Server:用方括号包裹
[Shoe size] - Oracle:用双引号包裹
"Shoe size"
- MySQL/MariaDB:用反引号包裹
- 执行更新前建议先运行查询语句预览分类结果,确认逻辑无误后再执行更新:
SELECT `Shoe size`, CASE WHEN `Shoe size` BETWEEN 32 AND 34 THEN 'Small' WHEN `Shoe size` = 36 THEN 'Medium' WHEN `Shoe size` >= 38 THEN 'Big' END AS 预计算分类 FROM Shoe;
执行更新后,你的Shoe表数据如下:
| Shoe size | Size |
|---|---|
| 32 | Small |
| 32 | Small |
| 36 | Medium |
| 38 | Big |
| 34 | Small |
| 40 | Big |
| 32 | Small |
内容的提问来源于stack exchange,提问作者quickhelp
相关产品推荐
相关产品推荐

