问个比较菜的sql语句
数据库表为
id first_name last_name major current_credits grade
1 10000 Scott Smith Computer Science 98
2 10001 Margaret Mason History 88
3 10002 Joanne Junebug Computer Science 75
4 10003 Manish Murgratroid Economics 66
对学生成绩分级别
update students
set grade = (
select grade from
(
select id,
case when current_credits > 90 then 'a'
when current_credits > 80 then 'b'
when current_credits > 70 then 'c'
else 'd' end grade
from students
) a
where a.id = students.id
);
请问大家为什么update student 的where语句写在括号里面就可以呢,说的稍微细一点。呵呵,刚刚研究sql比较菜。
补充下,上面的sql是可以简化的
UDPATE students
SET grade=(
CASE WHEN current_credits > 90 THEN 'a'
WHEN current_credits > 80 THEN 'b'
WHEN current_credits > 70 THEN 'c'
ELSE 'd'
相关问答:
....接到一个小程序..工作原来大概是这样的...前台是WEB服务器.架构就是ASP+SQL..前台由ASP向SQL添加服务类别(表单).然后又后台程序读取表单..要实时读取..然后显示在服务器上面..从理论上面能行通不?如果可以..后台 ......
执行的顺序:
1)文件浏览框(选择文件使用)
选择好文件后
点击一个导入按钮的时候 ,把上面上传框里的csv文件以一个ID为文件名,上传到**/**文件夹下
2)读取这个文件夹下的csv的文件,转换成sql
3 ......
有字段
日期,id
日期不重复,id 有重复
需要筛选出 每个id里面日期最早的数据。
SQL code:
select * from 表 t where not exists(select 1 from 表 where t.日期>日期 and id=t.id)
SQL ......
表A
Sup_code st_sup_code buy_code buy_code1
1001 400 &nbs ......