比如:
declare @sql varchar(1000)
set @sql='<br /><br />程序员身上的一个好笑的事情是,我们在毕生的职业生涯中都相信:我们的工作是告诉计<img src="http://www.csdn.com/ArticleImages/20130507000941.jpg" alt="def" />算机如何去做。<br /><br /><strong>真实情况</strong><br />真实情况是,计算机能正确的按照命令去运行。无论你写的是“Hello&nbsp;World”,还是用无人飞机去杀死一个人,而人会。计算机把程序员写的代码编译成字节比特,真正会去看你写的是什么的只有人类。<br /><br /><strong>写软件要像讲故事</strong><br />如果你对你的工作和你写的代码的行为有了新的认识,你会马上很清楚的发现,编程工作更像<img Src="http://www.csdn.com/ArticleImages/20130507000942.jpg" alt="abc" />讲故事。<br /><br />想一想。你是如何知道一个人讲故事没人爱听的?这很简单,他老跑题,他老是纠结在不重要的细节上,他老是在故事场景中挑来跳去,等等。你立刻能知道故事被他讲烂了。'请问要从@sql指取出
http://www.csdn.com/ArticleImages/20130507000941.jpg

http://www.csdn.com/ArticleImages/20130507000942.jpg
这两个路径要如何实现呢?

解决方案 »

  1.   

    如果只有两个就好办,要是有两个以上的话可能需要用正则表达式了declare @sql varchar(max)
    set @sql='<br /><br />程序员身上的一个好笑的事情是,我们在毕生的职业生涯中都相信:
    我们的工作是告诉计<img src="http://www.csdn.com/ArticleImages/20130507000941.jpg" alt="def" />算机如何去做。<br /><br /><strong>真实情况</strong><br />真实情况是,计算机能正确的按照命令去运行。无论你写的是“Hello&nbsp;World”,还是用无人飞机去杀死一个人,而人会。计算机把程序员写的代码编译成字节比特,真正会去看你写的是什么的只有人类。<br /><br /><strong>写软件要像讲故事</strong><br />如果你对你的工作和你写的代码的行为有了新的认识,你会马上很清楚的发现,编程工作更像<img Src="http://www.csdn.com/ArticleImages/20130507000942.jpg" alt="abc" />讲故事。<br /><br />想一想。你是如何知道一个人讲故事没人爱听的?这很简单,他老跑题,他老是纠结在不重要的细节上,他老是在故事场景中挑来跳去,等等。你立刻能知道故事被他讲烂了。'SELECT SUBSTRING(@sql,CHARINDEX('"h',@sql,1)+1,CHARINDEX('" alt="',@sql,1)-CHARINDEX('"h',@sql,1))
    SELECT REVERSE(SUBSTRING(REVERSE(@sql),PATINDEX('%gpj%',REVERSE(@sql)),PATINDEX('%"=crs%',REVERSE(@sql))-PATINDEX('%gpj%',REVERSE(@sql))))/*
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    http://www.csdn.com/ArticleImages/20130507000941.jpg"(1 行受影响)
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    http://www.csdn.com/ArticleImages/20130507000942.jpg
    */
      

  2.   

    先建个表和存储过程CREATE TABLE [dbo].[test](
    [test_str] [varchar](max) NULL
    ) ON [PRIMARY]CREATE proc [dbo].[ins_splitproc](@list varchar(max))
    as
    DECLARE @ix int, @pos int, @str varchar(1000), @sum int
    delete from test
    SET @pos = 1
    SET @ix = 1
    SET @sum = 0 
    WHILE @ix > 0 
    BEGIN
    SET @ix = charindex('"', @list, @pos) 
    IF @ix > 0
    SET @str = substring(@list, @pos, @ix - @pos) 
    ELSE
    SET @str = substring(@list, @pos, len(@list))
    SET @str = ltrim(rtrim(@str))
    insert into test values (@str)
    SET @pos = @ix + 1 
    END 
    select * from test where test_str like '%.jpg' 
    GO
    调用存储过程declare @sql varchar(1000)
    set @sql='<br /><br />程序员身上的一个好笑的事情是,我们在毕生的职业生涯中都相信:我们的工作是告诉计<img src="http://www.csdn.com/ArticleImages/20130507000941.jpg" alt="def" />算机如何去做。<br /><br /><strong>真实情况</strong><br />真实情况是,计算机能正确的按照命令去运行。无论你写的是“Hello&nbsp;World”,还是用无人飞机去杀死一个人,而人会。计算机把程序员写的代码编译成字节比特,真正会去看你写的是什么的只有人类。<br /><br /><strong>写软件要像讲故事</strong><br />如果你对你的工作和你写的代码的行为有了新的认识,你会马上很清楚的发现,编程工作更像<img Src="http://www.csdn.com/ArticleImages/20130507000942.jpg" alt="abc" />讲故事。<br /><br />想一想。你是如何知道一个人讲故事没人爱听的?这很简单,他老跑题,他老是纠结在不重要的细节上,他老是在故事场景中挑来跳去,等等。你立刻能知道故事被他讲烂了。'
    exec ins_splitproc @sql/*
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    http://www.csdn.com/ArticleImages/20130507000941.jpg
    http://www.csdn.com/ArticleImages/20130507000942.jpg
    */