又遇一问题,求解!

kart15 2010-12-31 10:04:57
有一段字符:@zd='ID,Names,banner,age'

在T-sql中如何讲上述字符替换成‘min(ID) ID,min(Names) Names,min(banner) banner,min(age) age’

注:@zd可能有很多个','

请问这个得怎么整!
...全文
86 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
飘零一叶 2010-12-31
  • 打赏
  • 举报
回复
DECLARE @zd VARCHAR(MAX),@tm VARCHAR(MAX),@r VARCHAR(MAX)
SET @zd='ID,Names,banner,age'
while CHARINDEX(',',@zd)>0
begin
set @tm=SUBSTRING(@zd,1,CHARINDEX(',',@zd)-1)
set @tm='min('+@tm+') '+@tm+''
set @r=ISNULL(@r+',','')+@tm
print @r
set @zd=STUFF(@zd,1,CHARINDEX(',',@zd),'')
end
set @zd='min('+@zd+') '+@zd+''
select @r+','+@zd
-----------------
(无列名)
min(ID) ID,min(Names) Names,min(banner) banner,min(age) age

AcHerat 2010-12-31
  • 打赏
  • 举报
回复

create function f_str(@str varchar(1000))
returns varchar(1000)
as
begin
declare @s1 varchar(1000)
declare @s2 varchar(1000)
declare @id int
set @s1 = @str + ','
set @id = charindex(',',@s1)
set @s2 = ''
while(len(@s1)>0)
begin
set @s2 = @s2 + 'min('+substring(@s1,1,@id-1)+') '+substring(@s1,1,@id-1)+','
set @s1 = substring(@s1,@id+1,len(@s1))
set @id = charindex(',',@s1)
end
set @s2 = stuff(@s2,len(@s2),1,'')
return @s2
end
go

select dbo.f_str('id,ic,ar,aga')lie

drop function f_str

lie
------------------------------------------------------
min(id) id,min(ic) ic,min(ar) ar,min(aga) aga

(1 行受影响)
AcHerat 2010-12-31
  • 打赏
  • 举报
回复

create function f_str(@str varchar(1000))
returns varchar(1000)
as
begin
declare @s1 varchar(1000)
declare @s2 varchar(1000)
declare @id int
set @s1 = @str + ','
set @id = charindex(',',@s1)
set @s2 = ''
while(len(@s1)>0)
begin
set @s2 = @s2 + 'min('+substring(@s1,1,@id-1)+')'+','
set @s1 = substring(@s1,@id+1,len(@s1))
set @id = charindex(',',@s1)
end
set @s2 = stuff(@s2,len(@s2),1,'')
return @s2
end
go

select dbo.f_str('id,ic,ar,aga')lie

drop function f_str

lie
--------------------------------------------
min(id),min(ic),min(ar),min(aga)
kart15 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dlut_liuq 的回复:]
SQL code
DECLARE @zd VARCHAR(MAX)
SET @zd=','+'ID,Names,banner,age'+','
SET @zd=REPLACE(@zd,',ID,',',MIN(ID),')
..............
..............
[/Quote]
问题是不知道是否是ID,Names...
在c#中利用循环来做,我想这里应该也得用循环吧!

但T-sql语句不熟悉,请赐教
飘零一叶 2010-12-31
  • 打赏
  • 举报
回复
DECLARE @zd VARCHAR(MAX)
SET @zd=','+'ID,Names,banner,age'+','
SET @zd=REPLACE(@zd,',ID,',',MIN(ID),')
..............
..............
内容概要:本文介绍了免疫算法及其在求解限量弧路由问题(CARP)中的应用。免疫算法灵感源于生物免疫系统,通过模拟抗体与抗原的相互作用,实现对复杂优化问题的高效求解。文章详细解释了抗体和抗原的概念、免疫算法的优势,以及其在全局搜索、自适应性和鲁棒性方面的特点。限量弧路由问题涉及在连通图中规划最优路径,以满足车辆容量限制并最小化总成本。文中展示了如何使用Python实现免疫算法,包括环境准备、抗体编码与初始化、适应度函数设计、免疫算子实现(选择、克隆、变异)以及算法主流程。通过一个城市物流配送的具体案例,分析了算法的收敛性和求解质量,并讨论了不同参数对算法性能的影响。; 适合人群:对智能优化算法和运筹学感兴趣的科研人员、算法开发者以及有一定编程基础的研究生或工程师。; 使用场景及目标:①学习免疫算法的基本原理及其在组合优化问题中的应用;②掌握Python实现免疫算法的技术细节,包括编码、适应度函数设计和免疫算子实现;③通过案例分析,理解免疫算法在实际问题中的表现和优化效果。; 其他说明:本文不仅提供了理论知识,还结合了具体的Python代码实现,帮助读者更好地理解和应用免疫算法。文中提到的案例分析展示了算法的实际应用效果,同时也指出了算法的局限性和未来的研究方向。阅读时应重点关注算法实现的细节和参数调整对性能的影响。

22,298

社区成员

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

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