简单SQL语句问题

leohe666 2009-01-13 04:51:17
SNO CNAME GRADE DAILGRADE
---------- -------------------- ----------
95001 数据库 92
95001 英语 85
95001 操作系统 88
95002 数据库 90
95002 操作系统 80
95003 英语 87
95004 数学 45

用一条语句给dailygrade 赋值,要求数据库课程的平时成绩80,英语的平时成绩85,其他课程的平时成绩为65。
这怎么完成谢谢
...全文
103 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangsong145 2009-01-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 leohe666 的帖子:]
SNO CNAME GRADE DAILGRADE
---------- -------------------- ----------
95001 数据库 92
95001 英语 85
95001 操作系统 88
95002 数据库 90
95002 操作系统 80
95003 英语 87
95004 数学 …
[/Quote]
update table set DAILGRADE =decode(CNAME,'数据库',80,'英语',85,65);
commit;
libolibo888 2009-01-14
  • 打赏
  • 举报
回复
方法1:
update table set dailgrade =
(
case when cname='数据库' then 80
when cname='英语' then 85
else 65 end
)
方法2:
select decode(CNAME,'数据库',80,'英语',85,65) as DAILGRADE from table
方法3:
update table set dailgrade = decode(CNAME,'数据库',80,'英语',85,65)
ZiSheng 2009-01-14
  • 打赏
  • 举报
回复

update lztable set dailgrade=decode(
cname,'数据库',90,'英语',100,65)



1 update lztable set dailgrade=(
2 case when cname='数据库' then 80
3 when cname='英语' then 85
4 else 65 end
5* )


decode()函数和 case子句,都行
rockywu 2009-01-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bsh_ly 的回复:]
update table set dailgrade = decode(CNAME,'数据库',80,'英语',85,65)
[/Quote]
up
bsh_ly 2009-01-13
  • 打赏
  • 举报
回复
update table set dailgrade = decode(CNAME,'数据库',80,'英语',85,65)
watson110 2009-01-13
  • 打赏
  • 举报
回复
select decode(CNAME,'数据库',80,'英语',85,65) as DAILGRADE from table
lslovechina 2009-01-13
  • 打赏
  • 举报
回复
update tbl set dailgrade =
(
case when cname='数据库' then 80
when cname='英语' then 85
else 65 end
)

17,381

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧