sql server 数据库 update操作问题求助!!!

mlocalhost 2016-09-08 02:47:11
update 表1 set 字段1=(select 字段2 from 表2 where 条件字段=1) where 条件字段2=1

这样是输出一条结果,可以成功写入

update 表1 set 字段1=(select 字段2 from 表2 where 条件字段>1) where 条件字段2=1

这样就不行了,提示返回结果不止一条。。
我需要把所有符合条件的结果写入到字段1里。。字段1为ntext类型
...全文
95 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mlocalhost 2016-09-08
  • 打赏
  • 举报
回复
或者说有没有办法,把查询出来的结果,合并然后再更新到记录里。
mlocalhost 2016-09-08
  • 打赏
  • 举报
回复
不允许 UPDATE 语句中包含 FOR XML 子句。 提示了这个
mingqing6364 2016-09-08
  • 打赏
  • 举报
回复
CREATE TABLE #B1 (ZD1 ntext,TJZD1 INT)
CREATE TABLE #B2 (ZD2 VARCHAR(20),TJZD2 INT)

INSERT INTO #B1 VALUES ('',1)
INSERT INTO #B2 VALUES 
('A',1),
('B',2),
('C',3),
('D',4),
('E',5),
('F',6),
('G',7),
('H',8),
('I',9)



UPDATE #B1 SET ZD1 = (SELECT ZD2 + ',' FROM #B2 FOR XML PATH('')) WHERE TJZD1 = 1

SELECT * FROM #B1

DROP TABLE #B1
DROP TABLE #B2
mlocalhost 2016-09-08
  • 打赏
  • 举报
回复
FOR XML PATH('')) 这个要怎么用,能讲细些吗。麻烦你了。
中国风 2016-09-08
  • 打赏
  • 举报
回复
update 表1 set 字段1=(select  ''+字段2  from 表2 where 条件字段>1 FOR XML PATH('')) where 条件字段2=1
用XML合并多条
mlocalhost 2016-09-08
  • 打赏
  • 举报
回复
我的意思就是想把所有搜索出来的结果,合并写入一个记录里
卖水果的net 2016-09-08
  • 打赏
  • 举报
回复
update 表1 set 字段1=(select 字段2 from 表2 where 条件字段>1) where 条件字段2=1 这样就不行了,提示返回结果不止一条。。 (select 字段2 from 表2 where 条件字段>1) 这种写法名为 ”标量子查询“ ,但是,这个条件返回了多行数据,以至于数据库不知道要用哪一个了;

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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