给你一个例子:
update A set A2=T.B2
from (select A.A1,B.B2 from A,B where A.A1=B.B1) T
where A.A1=T.A1
update A set A2=T.B2
from (select A.A1,B.B2 from A,B where A.A1=B.B1) T
where A.A1=T.A1
调试欢乐多
同SELECT a1,b2 FROM a INNER JOIN b ON a1=b1
有没有区别,哪个好?
from (select A.A1,B.B2 from A,B where A.A1=B.B1) T
where A.A1=T.A1
from (select A.A1,B.B2 from A,B where A.A1=B.B1)
为什么不加上T 就会报错?
2.update A set A2=T.B2
from (select A.A1,B.B2 from A,B where A.A1=B.B1) T
where A.A1=T.A1
中
(select A.A1,B.B2 from A,B where A.A1=B.B1)是不是没有用的?
?实际 from 的是T
declare @A varchar(10)
set @A=''
update 表 set co1=(case when co1='a' then co1 else @A end),
@A=(case when co1='a' then co2 else @A end)
from (select A.A1,B.B2 from A,B where A.A1=B.B1) T
where A.A1=T.A1
中From 的究竟是T 结果集 还是我建立一个T表?wgzaaa() 的方法正确。
这个查询是否把@A update 了?解释一下。create table Test
(Co1 varchar(5),
co2 varchar(10)
)
insert into test (Co1,co2) values('a' , 'xyz')
insert into test (Co1,co2) values('b' , 'm')
insert into test (Co1,co2) values('b' , 'n')
insert into test (Co1,co2) values('b' , 'y')
insert into test (Co1,co2) values('a' , 'lpg')
insert into test (Co1,co2)values('b' , 'u')
insert into test (Co1,co2) Values('b' , 'f')
values(b , m)
values(b , n)
values(b , y)
values(a , lpg)
values(b , u)
values(b , f
)
godeclare @A varchar(10)
set @A=''
update test set co1=(case when co1='a' then co1 else @A end),
@A=(case when co1='a' then co2 else @A end)
go
select * from test
a xyz
xyz m
xyz n
xyz y
a lpg
lpg u
lpg f
有时你自己发现了规律就去验证,不要等别人肯定才接受,是update了,而且是先给变量赋值
如果另外一个调出来了,也请贴出来看看!