我想在字符串中找到一个子字符串
如果我用mm搜索它应该是假的,用mmm搜索它应该是真的。然而,如果我用mm搜索,它会给我真实的答案。请帮助查找子字符串。输入可以是-8102-mmm或-mmm-0102或mmm-ttr-0102
DECLARE @WholeString VARCHAR(50)
DECLARE @ExpressionToFind VARCHAR(50)
SET @WholeString = 'ABC-MMM-0102'
SET @ExpressionToFind = 'MM'
IF @WholeString LIKE '%' + @ExpressionToFind + '%'
begin
PRINT 'Yes it is find'
end
ELSE
PRINT 'It doesn''t find'
3条答案
按热度按时间0ve6wy6x1#
您似乎希望“mmm”由引号或字符串的开头/结尾分隔。如果是,那么一种方法是:
另一种方法是
string_split()
:ws51t4hk2#
可以向表达式中添加限制字符(-),如下所示:
bybem2ql3#
两端带有通配符(%)的字符串“mm”是
like
字符串“嗯”。通配符意味着匹配任何字符,零或更多。所以“%m”是like
“m”,是的like
“毫米”。事实上,的确如此like
“(这里什么都没有,甚至什么都没有)m”。类似地,值“%mm”是
like
“嗯”。值“%mm%”也将是like
“嗯”。它是like
“(什么都没有,甚至什么都没有,在这里)嗯(什么都没有,甚至什么都没有,在这里也一样)”。如果您只想找到那些带有“mmm”的案例,那么您应该搜索: