很简单的遍历语句,请高手指点~

bitlaoyuan 2008-03-25 01:07:18
两个表
tab1:
c1(varchar) c2(int)
hahahaha 0
lalalala 0
hehehehe 0


tab2:
cc1(varchar) cc2(int)
haha 1
lalaha 0
lala 1

要干的东东是:
用tab2里cc2等于1的所有cc1到tab1里执行如下操作:如果charindex(tab.cc2,tab.c1)>0,就set c2 = 1
...全文
127 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bitlaoyuan 2008-03-25
  • 打赏
  • 举报
回复
我很怀疑我这个需求叫不叫遍历...
bitlaoyuan 2008-03-25
  • 打赏
  • 举报
回复
原来这么简单,看我写的:
update tab1
set c2 = 1
where charindex(select cc1 from calss where cc2 = 1,tab.c1)>0

纯新手摸索中~
Limpire 2008-03-25
  • 打赏
  • 举报
回复
update t set c2 = 1 from tab1 t where exists (select 1 from tab1 a, tab2 b where a.c1=t.c1 and b.cc2=1 and charindex(b.cc1,a.c1)>0)
bitlaoyuan 2008-03-25
  • 打赏
  • 举报
回复
哈哈,多谢老乌龟~
bitlaoyuan 2008-03-25
  • 打赏
  • 举报
回复
55,半夜没人了
dawugui 2008-03-25
  • 打赏
  • 举报
回复
create table tab1(c1 varchar(20),  c2 int) 
insert into tab1 values('hahahaha', 0)
insert into tab1 values('lalalala', 0)
insert into tab1 values('hehehehe', 0)
create table tab2(cc1 varchar(20), cc2 int)
insert into tab2 values('haha' , 1 )
insert into tab2 values('lalaha' , 0 )
insert into tab2 values('lala' , 1 )
go

update tab1
set c2 = 1
from tab1,tab2 where tab2.cc2 = 1 and charindex(tab2.cc1,tab1.c1) > 0

select * from tab1

drop table tab1,tab2

/*
c1 c2
-------------------- -----------
hahahaha 1
lalalala 1
hehehehe 0

(所影响的行数为 3 行)
&/
bitlaoyuan 2008-03-25
  • 打赏
  • 举报
回复
55,半夜没人了

34,837

社区成员

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

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