T sql字符串搜索匹配部分字符串exact和part not

时间:2015-02-09 15:25:46

标签: string tsql search

我需要在Tsql中找到一个特定的字符串模式。我希望第一部分是完全匹配,第二部分是除了特定字符之外的任何东西。问题是我希望允许字符串以该字符结尾。例如,我想要一个将返回匹配

的所有网址的查询
www.test/%any thing but a '/'%/

所以这将被退回

www.test/group/

这不会

www.test/group/input/

我更希望这是一个类似的声明,以便在这更容易添加参数。

2 个答案:

答案 0 :(得分:1)

您不能在单LIKE中执行此操作。 LIKE不是REGEX,而且有限。 使用2 LIKE s:

DECLARE @t TABLE (href NVARCHAR(200))

INSERT INTO @t VALUES('www.test/any thing but/asdsa/')
INSERT INTO @t VALUES('www.test/any thing but/')


SELECT * FROM @t WHERE href LIKE N'www.test/%/' AND href NOT LIKE N'www.test/%/%/'

输出:

href
www.test/any thing but/

答案 1 :(得分:0)

这对我有用,但我喜欢来自Giorgi的anser更好+1

SELECT T.url 
  FROM ( values ('www.test/group/'), ('www.test/group/input/'), ('www.test/people/')
       ) as T(url)  
 WHERE T.url like 'www.test/%/'
   AND CHARINDEX ( '/' , T.url, CHARINDEX ( '/' , T.url, ( CHARINDEX ( '/' , T.url ) + 1 )  ) + 1 ) <= 0;