我想根据某些情况/条件在现有SQL表中添加具有默认值的新列。
我想知道是否有可能。如果是,怎么办?如果不是,为什么?
替代方案:
一种选择是创建列,然后更新,但是这里的方法是不可能的。
让我们考虑一下下表
?????????????????????
? ID ? Age ?
?????????????????????
? 1 ? 0.166667 ?
? 2 ? 0.125 ?
? 3 ? 13 ?
? 4 ? 19 ?
? 5 ? 45 ?
? 6 ? 59 ?
? 7 ? 60 ?
? 8 ? 64 ?
?????????????????????
Run Code Online (Sandbox Code Playgroud)
所需的输出是这样的:
?????????????????????????????????
? ID ? Age ? AgeGroup ?
?????????????????????????????????
? 1 ? 0.166667 ? NewBorn ?
? 2 ? 0.125 ? NewBorn ?
? 3 ? 13 ? Teen ?
? 4 ? 19 ? Teen ?
? 5 ? 45 ? Adult ?
? 6 ? 59 ? Adult ?
? 7 ? 60 ? Elder ?
? 8 ? 64 ? Elder ?
?????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
我已经研究了这篇文章,但这仅用于“添加列默认值”
编辑:这是上面表格的SQL 脚本,其中包含要测试的用户的表和数据。
您可以尝试一下。基本上有两种方法可以实现此目的。
在表架构中添加列
据我了解,您想在表架构中添加一列,作为您共享的给定链接。您可以使用case语句为计算值添加列。
编辑:更正语法错误
alter table yourtable
add AgeGroup as (case
when Age < 2 then 'New Born'
when Age < 19 then 'Teen'
when Age < 45 then 'Young'
when Age > 60 then 'Adult'
else 'Invalid'
end);
Run Code Online (Sandbox Code Playgroud)
要么
建立检视
您可以为其创建视图,并在需要时使用它。
Create View TableResult
As
Select Id, Age, case Age
WHEN Age < 2 then 'New Born'
WHEN Age < 19 then 'Teen'
WHEN Age < 45 then 'Young'
WHEN Age > 60 then 'Adult'
else 'Invalid'
end as AgeGroup
End
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |