关于SQL Server的条件判断

比如我现在有一个列C,他存储的是一个天数,我现在有一个列D存储过去罚款,我需要列D的数据为(C-30)*0.8,如果C小于30则为0,请问怎么实现?谢谢

在你的表中,添加一列D,并在列属性中的:计算所得的列规范——公式中写上:CASE WHEN(C >= 30) THEN (C - 30) * 0.8 ELSE 0 END 就可以了。

或者运行如下语句:
ALTER TABLE table
ADD D AS CASE WHEN(C >= 30) THEN (C - 30) * 0.8 ELSE 0 END
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-12-21
update 表名字 set d= case when c>30 then (c-30)*0.8 else 0 end
第2个回答  推荐于2018-05-09
select *,(case when c>=30 then (C-30)*0.8 else 0 end) as E into table_name_bak from table_name

上面的语句table_name为你的表名,功能是能够新建个table_name_bak 的表 这个表新曾了列E ,列E 的数据为 (C-30)*0.8 ,如果C小于30则为0
----------------
一般不建议更改基本表,但可以建个视图,例如:
create view view_表名
as select C ,(case when c>=30 then (C-30)*0.8 else 0 end) as D from 表名
将表名改成你的基础表名,就是可以使用了!本回答被提问者和网友采纳
第3个回答  2008-12-29
回答者: Sharon_QQ - 高级经理 六级 12-23 15:15

正解!
第4个回答  2008-12-21
select (case when c>=30 then (C-30)*0.8 else 0 end) as d from table_name
相似回答