以下声明中PATINDEX
标识了哪种模式?任何人都可以帮我分析一下吗?
我们怎样才能找到('我','II','III')中的哪一个?
select PATINDEX ('%[I,II,III]%','sjfhasjdg II')
请帮我找到。
答案 0 :(得分:1)
这不是您使用PATINDEX
的方式。 ,
不是交替运营商。
您告诉它在集I,II,III
中找到只重复很多字符的字符,因此可以简化为“找到I
或,
的第一个位置”< / p>
你可以尝试
WITH SearchTerms(Term)
AS (SELECT 'I'
UNION ALL
SELECT 'II'
UNION ALL
SELECT 'III'),
ToBeSearched(string)
AS (SELECT 'sjfhasjdg II')
SELECT string,
Term,
Charindex(Term, string) AS Location
FROM ToBeSearched
JOIN SearchTerms
ON Charindex(Term, string) > 0
返回
string Term Location
------------ ---- -----------
sjfhasjdg II I 11
sjfhasjdg II II 11
当然I
和II
匹配,因为匹配第二个的任何内容都会匹配第一个。