sql多行拼接中怎么引用其他表

sql多行拼接中怎么引用其他表,第1张

测试表,数据:

create table a

(name varchar(10),

mdid int)

insert into a values ('张三',1)

insert into a values ('张三',2)

insert into a values ('李四',1)

insert into a values ('王五',2)

insert into a values ('王五',3)

create table b

(mdid int,

mdname varchar(10),

money int)

insert into b values (1,'北京',2000)

insert into b values (2,'上海',2500)

insert into b values (3,'广州',1800)

执行

select name, 

mdname=stuff((select '/'+mdname from 

(select a.name,b.mdname,b.money from a,b where a.mdid=b.mdid) t where name=tb.name for xml path('')), 1, 1, ''),

money=stuff((select '/'+ cast(money as varchar) from 

(select a.name,b.mdname,b.money from a,b where a.mdid=b.mdid) t where name=tb.name for xml path('')), 1, 1, '')

from (select a.name,b.mdname,b.money from a,b where a.mdid=b.mdid) tb

group by name

结果:

以上:sqlserver下执行

注意:是插入还是更新

插入的话:

insert into a(col) select col from b

更新的话:

update a set col=select col from b where a.id=b.id


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11560230.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存