sql语句问题,希望大神看一下,很快

ycs199339 发布于 2016/03/06 22:07
阅读 181
收藏 0
在Score表中添加列“成绩段”,将score<60的同学显示为不及格。 这样写可以吗:alter table Score add 成绩段varchar(20), update Score set 成绩段='不及格’ where score<60, 求指教,谢谢!
加载中
2
骨二
骨二
SELECT *, CASE WHEN score < 60 THEN '不及格' ELSE '及格' END AS 成绩段 FROM Score



这样可以不用修改表结构,如果长期需要的话可以建立视图

用你问题中所写的方法只有才执行SQL的时候才会写入成绩段的值,而且不能动态更新

0
ycs199339
ycs199339

引用来自“骨二”的评论

SELECT *, CASE WHEN score < 60 THEN '不及格' ELSE '及格' END AS 成绩段 FROM Score



这样可以不用修改表结构,如果长期需要的话可以建立视图

用你问题中所写的方法只有才执行SQL的时候才会写入成绩段的值,而且不能动态更新

好厉害,谢谢啊!
0
Sel8616
Sel8616

引用来自“骨二”的评论

SELECT *, CASE WHEN score < 60 THEN '不及格' ELSE '及格' END AS 成绩段 FROM Score



这样可以不用修改表结构,如果长期需要的话可以建立视图

用你问题中所写的方法只有才执行SQL的时候才会写入成绩段的值,而且不能动态更新

引用来自“ycs199339”的评论

好厉害,谢谢啊!
在数据库里建立一个视图,业务代码直接从这个视图里查询数据
0
Feng_Yu
Feng_Yu

视图+1,这种需求不要建字段去存储,否则你修改成绩得同时改两个字段。

就跟那个经典的范例: 如果要显示一个人的年龄的话,那么数据库存储的应该是这个人的出生日期,而不是专门建一个age字段(否则你每天得跑定时任务去update整个表)

0
ycs199339
ycs199339
新人很多都不懂,多谢各位的指导!
返回顶部
顶部