sql语句面试题 求解答(貌似挺难的)

wangsuchuan 2013-04-09 04:43:45



...全文
191 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianma630 2013-04-09
  • 打赏
  • 举报
回复
引用 4 楼 wangsuchuan 的回复:
引用 3 楼 tianma630 的回复:1、4 2、update TestA a set a.Grade = (select b.Grade from TestB b where b.STU_ID = a.STU_ID ) 3、update TestA a set a.STU_ID = a.STU_ID || a.Grade where a.STU_Name……
update TestA a set a.Grade = case when (select b.Grade from TestB b where b.STU_ID = a.STU_ID ) = null a.Grade else (select b.Grade from TestB b where b.STU_ID = a.STU_ID ) end;
zhl71199713 2013-04-09
  • 打赏
  • 举报
回复
mark
Luger 2013-04-09
  • 打赏
  • 举报
回复
mark 回去试试
qq2511296 2013-04-09
  • 打赏
  • 举报
回复
引用 6 楼 qq2511296 的回复:
SQL code?1234567891).42).(这个可以在Oracle下执行 mysql 应该执行不了)begin for p in (select * from TestB)loopupdate TsetA a set a.Grade=p.Grade where a.STU_ID=p.STU_ID;end loop;end; 3).update TestA a se……
2)写错个表名称。。。。
KissJAE 2013-04-09
  • 打赏
  • 举报
回复
引用 3 楼 tianma630 的回复:
1、4 2、update TestA a set a.Grade = (select b.Grade from TestB b where b.STU_ID = a.STU_ID ) 3、update TestA a set a.STU_ID = a.STU_ID || a.Grade where a.STU_Name like '张%' 4、select * from (sel……
merge into TestA a using TestB b on (a.id=b.id) when matched then update set a.grade=b.grade; 在Oracle中用merge函数不错
qq2511296 2013-04-09
  • 打赏
  • 举报
回复

1).4
2).(这个可以在Oracle下执行 mysql 应该执行不了)
begin for p in (select * from TestB)loop
update TsetA a set a.Grade=p.Grade where a.STU_ID=p.STU_ID;
end loop;
end;

3).update TestA a set SUT_ID=a.STU_ID||'_'||a.Grade where a.STU_NAME like '张%';
4).select * from TestA a order by a.Grade desc limit(21,20); (这个只适用mysql)
qq2511296 2013-04-09
  • 打赏
  • 举报
回复
引用 3 楼 tianma630 的回复:
1、4 2、update TestA a set a.Grade = (select b.Grade from TestB b where b.STU_ID = a.STU_ID ) 3、update TestA a set a.STU_ID = a.STU_ID || a.Grade where a.STU_Name like '张%' 4、selec……
update TestA a set a.Grade = (select b.Grade from TestB b where b.STU_ID = a.STU_ID ) 这句明显错了 会把TestA里面有的数据会设置为null了,这个正确的做法应该是在循环里面去弄 应该要用存储过程吧?
wangsuchuan 2013-04-09
  • 打赏
  • 举报
回复
引用 3 楼 tianma630 的回复:
1、4
2、update TestA a set a.Grade = (select b.Grade from TestB b where b.STU_ID = a.STU_ID )

3、update TestA a set a.STU_ID = a.STU_ID || a.Grade where a.STU_Name like '张%'

4、selec……







谢了,但前两个不太对
tianma630 2013-04-09
  • 打赏
  • 举报
回复
1、4 2、update TestA a set a.Grade = (select b.Grade from TestB b where b.STU_ID = a.STU_ID ) 3、update TestA a set a.STU_ID = a.STU_ID || a.Grade where a.STU_Name like '张%' 4、select * from (select a.*,rownum rn from TestA a desc) where rn > 20 and rn<=40 没测试 你自己测试看看吧
wangsuchuan 2013-04-09
  • 打赏
  • 举报
回复
引用 1 楼 forgetsam 的回复:
不想学就不用答,想学就自己答。
这个我是费了老大劲也没做出来的题,特来此求指教
forgetsam 2013-04-09
  • 打赏
  • 举报
回复
不想学就不用答,想学就自己答。

81,092

社区成员

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

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