又遇一问题,求解!

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可能有很多个','

请问这个得怎么整!
...全文
74 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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),')
..............
..............
内容概要:本文详细介绍了使用Matlab实现蚁群算法来解决多配送中心车辆调度问题(VRP)的方法。文章首先定义了一个具体的问题背景,即有3个配送中心、50个客户点,每辆车载重4吨,客户需求随机分布在0.5到1.5吨之间,坐标范围为[0,100]。然后,文章逐步讲解了蚁群算法的核心流程,包括蚂蚁从各配送中心出发、根据信息素和距离选择下一节点、超载返回配送中心换车以及完成全程后的信息素更新。文中还提供了关键参数设置及其对算法性能的影响,并展示了路径选择和信息素更新的具体代码实现。最后,给出了运行结果示例,如各配送中心的路径及总里程,并提出了几种改进方向,比如替换距离矩阵、增加时间窗约束等。 适用人群:对车辆路径规划感兴趣的研究人员和技术爱好者,尤其是那些希望通过Matlab进行相关研究的人。 使用场景及目标:适用于希望深入了解蚁群算法在物流优化领域的应用,特别是多配送中心车辆调度问题求解方法。目标是帮助读者掌握蚁群算法的基本原理及其在Matlab中的具体实现,从而能够根据自身需求调整代码并应用于实际项目。 其他说明:本文不仅提供了完整的源码和详细的注释,还分享了一些实用的小技巧,如如何避免路径死循环等问题。此外,作者鼓励读者根据自己的需求对代码进行‘魔改’,以适应不同的应用场景。

22,300

社区成员

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

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