Return SQL 服务器中指定字符串的子字符串
Return a substring from a specified string in SQL Server
我有以下查询:
DECLARE @url varchar (max)='http://v.mercola.com/blogs/public_blog/New-Diet-Pill-Expands-1-000-Times-in-Your-Stomach-24728.aspx'
SELECT replace(replace(RIGHT(@URL , CHARINDEX ('/' ,REVERSE(@URL))-1),'.aspx',''),'-',' ') as abc
returns 下面输出:
实际输出-
预期输出
即我想在最后一次出现 -
之后删除字符串。
我必须进行哪些更改才能获得预期的输出..
总之,我想要一个在最后一次出现 /
之后和最后一次出现 -
之前的子字符串,如上所示。
请提前帮助并感谢...!
像这样:
DECLARE @url varchar (max)='http://v.mercola.com/blogs/public_blog/New-Diet-Pill-Expands-1-000-Times-in-Your-Stomach-24728.aspx'
declare @suffix varchar(max)
select @suffix = RIGHT(@URL , CHARINDEX ('/' ,REVERSE(@URL))-1)
select left(@suffix, len(@suffix) - charindex('-', reverse(@suffix)))
输出:
New-Diet-Pill-Expands-1-000-Times-in-Your-Stomach
试试这个
DECLARE @url VARCHAR (max)='http://v.mercola.com/blogs/public_blog/New-Diet-Pill-Expands-1-000-Times-in-Your-Stomach-24728.aspx'
SELECT Reverse(LEFT(mid, Charindex('/', mid) - 1))
FROM (SELECT Substring(Reverse(@url), Charindex('-', Reverse(@url)) + 1, Len(@url)) AS mid) a
另一个选项:
DECLARE @url varchar (max)='http://v.mercola.com/blogs/public_blog/New-Diet-Pill-Expands-1-000-Times-in-Your-Stomach-24728.aspx'
DECLARE @LastSlash int = LEN(@URL) - CHARINDEX('/', REVERSE(@URL)) + 2,
@LastMinus int = LEN(@URL) - CHARINDEX ('-', REVERSE(@URL)) + 1
SELECT SUBSTRING(@URL, @LastSlash, @LastMinus-@LastSlash)
我有以下查询:
DECLARE @url varchar (max)='http://v.mercola.com/blogs/public_blog/New-Diet-Pill-Expands-1-000-Times-in-Your-Stomach-24728.aspx'
SELECT replace(replace(RIGHT(@URL , CHARINDEX ('/' ,REVERSE(@URL))-1),'.aspx',''),'-',' ') as abc
returns 下面输出:
实际输出-
预期输出
即我想在最后一次出现 -
之后删除字符串。
我必须进行哪些更改才能获得预期的输出..
总之,我想要一个在最后一次出现 /
之后和最后一次出现 -
之前的子字符串,如上所示。
请提前帮助并感谢...!
像这样:
DECLARE @url varchar (max)='http://v.mercola.com/blogs/public_blog/New-Diet-Pill-Expands-1-000-Times-in-Your-Stomach-24728.aspx'
declare @suffix varchar(max)
select @suffix = RIGHT(@URL , CHARINDEX ('/' ,REVERSE(@URL))-1)
select left(@suffix, len(@suffix) - charindex('-', reverse(@suffix)))
输出:
New-Diet-Pill-Expands-1-000-Times-in-Your-Stomach
试试这个
DECLARE @url VARCHAR (max)='http://v.mercola.com/blogs/public_blog/New-Diet-Pill-Expands-1-000-Times-in-Your-Stomach-24728.aspx'
SELECT Reverse(LEFT(mid, Charindex('/', mid) - 1))
FROM (SELECT Substring(Reverse(@url), Charindex('-', Reverse(@url)) + 1, Len(@url)) AS mid) a
另一个选项:
DECLARE @url varchar (max)='http://v.mercola.com/blogs/public_blog/New-Diet-Pill-Expands-1-000-Times-in-Your-Stomach-24728.aspx'
DECLARE @LastSlash int = LEN(@URL) - CHARINDEX('/', REVERSE(@URL)) + 2,
@LastMinus int = LEN(@URL) - CHARINDEX ('-', REVERSE(@URL)) + 1
SELECT SUBSTRING(@URL, @LastSlash, @LastMinus-@LastSlash)