问一个sql语句的写法
现在有这样的一个表,数据是这样的
id name imgUrl
1 新闻1 200504011.gif|图片简介1|200504012.gif|图片简介2|200504013.gif|图片简介3
2 新闻2 200504013.gif|图片简介1|200504014.gif|图片简介2|200504013.gif|图片简介3
3 新闻3 200504013.gif|图片简介1|200504014.gif|图片简介2|200504013.gif|图片简介3
4 新闻4 200504013.gif|图片简介1|200504014.gif|图片简介2|200504013.gif|图片简介3
imgurl 字段是存放图片路径 和简介的,以 | 隔开,图片路径 和简介相间排列
现在由于图片路径的更改,图片名称前面需要加上 地址
就象这样
http://img.sohu.com/edu/200504013.gif|图片简介1|http://img.sohu.com/edu/200504014.gif|图片简介2|http://img.sohu.com/edu/200504013.gif|图片简介3
能不能写一段sql程序,将所有的记录都加上 路径
要求只用 sql语言,不能使用 asp/php等脚本
问题点数:100、回复次数:8Top
1 楼huobr(两颗牙齿)回复于 2005-04-01 22:08:47 得分 5
update 表
set imurl = ' http://img.sohu.com/edu/' + imurl
update 表
set imurl = replace(imurl,'|',' |http://img.sohu.com/edu/' )
Top
2 楼hellofox2000(圣代无隐者,英雄尽归来)回复于 2005-04-01 22:18:00 得分 0
update 表
set imurl = ' http://img.sohu.com/edu/' + imurl
update 表
set imurl = replace(imurl,'|',' |http://img.sohu.com/edu/' )
好象不行吧,这样的话,图片简介前面也放上 'http://img.sohu.com/edu/'这个了
而这个是不需要放的Top
3 楼zjcxc(邹建)回复于 2005-04-01 22:27:02 得分 80
--写个替换处理函数
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_replaceSTR]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_replaceSTR]
GO
CREATE FUNCTION f_replaceSTR(
@s varchar(4000), --要分拆的字符串
@path varchar(100) --要添加的目录
)RETURNS varchar(8000)
AS
BEGIN
DECLARE @re varchar(8000),@i int
SELECT @re='',@i=0
WHILE CHARINDEX('|',@s)>0
SELECT @re=@re
+case when @i=0 then @path else '' end
+LEFT(@s,CHARINDEX('|',@s)-1)
+'|',
@s=STUFF(@s,1,CHARINDEX('|',@s),''),
@i=case when @i=0 then 1 else 0 end
RETURN(@re+case when @i=0 then @path else '' end+@s)
END
GO
Top
4 楼zjcxc(邹建)回复于 2005-04-01 22:27:43 得分 0
--然后调用函数实现更新就可以了
update 表 set imurl = dbo.f_replacestr(imurl,'http://img.sohu.com/edu/')Top
5 楼huobr(两颗牙齿)回复于 2005-04-01 22:31:13 得分 5
哪就先将‘|图处简介’ 更新成'图处简介’,在执行以上语句后,反过来更新回来就可以了。Top
6 楼luckyprg(lucky)回复于 2005-04-01 22:35:23 得分 5
老大出马,我就不说了。Top
7 楼gzhughie(hughie)回复于 2005-04-01 23:29:11 得分 5
这样应该可以
UPDATE TABLE
SET imgurl = 'http://img.sohu.com/edu/'
+REPLACE(REPLACE(imgurl,'.gif|','.gif||'),'|','http://img.sohu.com/edu/')Top
8 楼hellofox2000(圣代无隐者,英雄尽归来)回复于 2005-04-07 08:29:48 得分 0
谢谢以上各位Top




