我需要在Tsql中找到一个特定的字符串模式。我希望第一部分是完全匹配,第二部分是除了特定字符之外的任何东西。问题是我希望允许字符串以该字符结尾。例如,我想要一个将返回匹配
的所有网址的查询www.test/%any thing but a '/'%/
所以这将被退回
www.test/group/
这不会
www.test/group/input/
我更希望这是一个类似的声明,以便在这更容易添加参数。
答案 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;