SQL 语句技巧--多行变一列

 

   今天碰到一个需求,将多行数据id值,变成一列,并更新到制定列中,在网上找了也没好的方法,最后自己写了一个实现,语句如下:

复制代码
create FUNCTION stTable
(    
    
@id varchar(32)
)
RETURNS @st TABLE (id varchar(8000)) 
begin
    
declare @sql as varchar(8000);
    
set @sql=''
    
select @sql=@sql+','+objid2+'' 
    
from (select distinct objid2 from dbo.refobjlink where objid1=@id and  
    linktype
='project3')  b
    
set @sql=substring(@sql,2,len(@sql))
    
insert into @st values(@sql)
    
return 
end
GO

update project set numbers=t.id
from project
CROSS APPLY  stTable(project.id) t
GO
复制代码

 

 结果是:

复制代码
原有多行的数据:
1
2
3
4
5
转化为一列的数据:
1,2,3,4,5
复制代码
posted @   zping  阅读(3540)  评论(2编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示