再次求教!!

0620 2003-10-17 01:11:07
update S_tbl set Grade=(select Grade from S_b_tbl where bianhao in ('139','140')), Sign=(select Sign from S_b_tbl where bianhao in ('139','140')),ClassNo=(select ClassNo from S_b_tbl where bianhao in ('139','140')) where bianhao in ('139','140')

以上语句子查询中由于有in,所以出错!但我现在必须修改满足条件的所有记录,怎样修改以上语句。
...全文
93 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
verybigmouthz 2003-10-17
  • 打赏
  • 举报
回复
同意 yujohny(踏网无痕)
yujohny 2003-10-17
  • 打赏
  • 举报
回复
那SQL语句要处理转化这一步,所以个人认为能写为or要直接写,少用in
shuiniu 2003-10-17
  • 打赏
  • 举报
回复
因为没有涉及导子查询:in(select....)
sql server 再内部处理的时候
将a.bianhao in ('139','140') 转化为 A.bianhao='139' or A.bianhao='140'!
shuiniu 2003-10-17
  • 打赏
  • 举报
回复
yujohny(踏网无痕):用or比in好?
---------------------------
就修改楼主的语句,用
where A.bianhao='139' or A.bianhao='140'

where a.bianhao=b.bianhao and a.bianhao in ('139','140'))
完全一样的!
个人意见
zhbname 2003-10-17
  • 打赏
  • 举报
回复
up
yujohny 2003-10-17
  • 打赏
  • 举报
回复
update A
set A.Grade=B.Grade,
A.[Sign]=B.[Sign],
A.ClassNo=B.ClassNo
from S_tbl A inner join S_b_tbl B where B.bianhao=A.bianhao
where A.bianhao='139' or A.bianhao='140'

用or比in好
yoki 2003-10-17
  • 打赏
  • 举报
回复
update S_tbl
set Grade=a. Grade,
Sign=a.Sign,
ClassNo=a.ClassNo
from S_b_tbl a ,S_tbl b
where a.bianhao=b.bianhao and a.bianhao in ('139','140'))

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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