头痛,手头上没有资料,请教一条sql语句

wumingwangzi 2005-06-02 09:13:19
table1(id,userid,col1)
table2(id,col2)

id对应关系
table1.userid = table2.id;(非一一对应,id在table2里不是主键,有重复数据)

table1的col1字段全部内容为空,是新建字段
我需要把table2的col2里面的内容,按照userid的唯一,
将相同的id的col2字符串连接复制到col1的字段上

另外如果字段是text字段应该怎么实现?
...全文
68 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wumingwangzi 2005-06-02
  • 打赏
  • 举报
回复
太感谢斑竹大哥了,多谢,多谢
zjcxc 元老 2005-06-02
  • 打赏
  • 举报
回复
--2. 如果table1.col1是text字段,而且col1的值为空的话,就可以这样处理
create function f_str(@id int)
returns varchar(8000)
as
begin
declare @r varchar(8000)
set @r=''
select @r=@r+rtrim(col2) from table2 where id=@id and col2>''
return(@r)
end
go

--调用函数实现更新处理
update table1 set col1=isnull(dbo.f_str(userid),'')
zjcxc 元老 2005-06-02
  • 打赏
  • 举报
回复
--1. 因为要将 table2.col2 按id进行字符串连接加到 table1.col1 中,因此先写个处理函数
create function f_str(@id int)
returns varchar(8000)
as
begin
declare @r varchar(8000)
set @r=''
select @r=@r+rtrim(col2) from table2 where id=@id and col2>''
return(@r)
end
go

--调用函数实现更新处理
update table1 set col1=isnull(a.col1,'')+isnull(dbo.f_str(userid),'')
duanduan1122 2005-06-02
  • 打赏
  • 举报
回复
update t1
set col1=t2.col2
from table1 t1 join table2 t2
on t1.userid=t2.id
子陌红尘 2005-06-02
  • 打赏
  • 举报
回复
UPDATE A
SET
COL1 =ISNULL(COL1,'') + B.COL2
FROM
TABLE1 A,
TABLE2 B
WHERER
A.ID = B.ID

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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