是否可以从多行更新行?
我正在尝试通过连接找到的字符串来更新我的列,但它不起作用。
我正在尝试连接sord.type
列中的所有sor.type
sord.orderid = sor.orderid
查询:
update sor
set sor.type = sor.type + " " + (select sord.type
from sales.OrderDetails sord
where sord.orderid = sor.orderid)
from sales.Orders sor
我想得到总和
错误:
Msg 512,Level 16,State 1,Line 1
子查询返回的值超过1。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。
答案 0 :(得分:1)
没有样本数据,我不确定sor.type + ' ' +
是否必要
在没有更新的情况下尝试以下操作。如果您对结果感到满意,请删除顶部选择并取消注释更新
Select
--update sor set sor.type =
sor.type + ' ' + (Select Stuff((Select Distinct ' ' +sord.type
From sales.OrderDetails sord
Where sord.orderid = sor.orderid
For XML Path ('')),1,1,'') )
from sales.Orders sor
同样,在没有看到样本数据的情况下,可能会有更高效的方法,即不同和加入