关于表值更新问题
比如现在有a,b两个表,我想用b表的一个列的值去更新a表的一个列,因为b表的值可能有多个,我取第一个,SQL怎么写?
------解决方案--------------------比如现在有a,b两个表,我想用b表的一个列的值去更新a表的一个列,因为b表的值可能有多个,我取第一个,SQL怎么写?
update a
set col = c.col
from a,
(select id , min(col) col from b group by id) c
where a.id = c.id
或
update a
set col = c.col
from a,
(select id , max(col) col from b group by id) c
where a.id = c.id
------解决方案--------------------update a表
set 列=(select top1 列 from b表 where 关联键=a.关联键)
------解决方案--------------------update a set ColNam=(select top 1 ColNam1 from b) where 条件
--测试
declare @ta table(Nam varchar(20))
insert @ta select 'aa '
union all select 'bb '
declare @tb table(Nam varchar(20))
insert @tb select 'dd '
union all select 'ee '
update @ta set Nam=(select top 1 Nam from @tb)
select * from @ta