使用Sql获取输出中的特定单词

时间:2018-10-05 08:50:54

标签: sql-server

这是我的查询。

select imgsrc from images where id = 1

这样的输出,

imgsrc

<img src="http://mypage/tiles/imgs/imgfilename.png"/>   

但是我希望我的输出像imagefilename.png一样,如果可能的话?

那么有可能我遵循什么方式来获得所需的输出。

请指导我。

先谢谢了。

1 个答案:

答案 0 :(得分:3)

您可以创建一个UDF,该UDF在匹配并找到模式后返回名称。

CREATE FUNCTION ufcGetImageName(@imageSrc varchar(200))  
RETURNS varchar(200)   
AS   
BEGIN  
     DECLARE @position INT

     /* here it will fetch the image source followed by any other image attributes*/
     SET @position = CHARINDEX('src="', @imageSrc) + 5           
     SET @imageSrc = SUBSTRING(@imageSrc, @position, LEN(@imageSrc))

     /* here it wil fetch only the image url leaving other image attributes*/
     SET @position = CHARINDEX('"', @imageSrc) 
     SET @imageSrc = SUBSTRING(@imageSrc, 0, @position)

     /* here it will fetch the image name alone */
     SET @position = CHARINDEX('/', reverse(@imageSrc)) 
     SET @imageSrc = SUBSTRING(reverse(@imageSrc), 0, @position)

     RETURN reverse(@imageSrc)
END; 

并通过任何查询进行呼叫

SELECT 
  imgSrc as imagesrc, 
  dbo.ufcGetImageName(imgSrc) AS imagename 
FROM 
  images;

这里是demo