나는 문자열을 가지고있다 @mainString = 'CATCH ME IF YOU CAN'
. 단어 ME
가 안에 있는지 확인하고 싶습니다 @mainString
.
SQL에서 문자열에 특정 하위 문자열이 있는지 어떻게 확인합니까?
답변
CHARINDEX ()는 더 큰 문자열에서 하위 문자열을 검색하고 일치하는 위치를 반환하거나 일치하는 항목이 없으면 0을 반환합니다.
if CHARINDEX('ME',@mainString) > 0
begin
--do something
end
다니엘스의 답변을 편집 하거나 단어의 하위 구성 요소가 아닌 단어를 찾으려면 CHARINDEX 호출은 다음과 같습니다.
CHARINDEX(' ME ',' ' + REPLACE(REPLACE(@mainString,',',' '),'.',' ') + ' ')
발생할 수있는 다른 구두점에 대해 재귀 REPLACE () 호출을 더 추가하십시오.
답변
술어에서 와일드 카드를 사용할 수 있습니다 (IF, WHERE 또는 ON 이후).
@mainstring LIKE '%' + @substring + '%'
이 특정한 경우에
' ' + @mainstring + ' ' LIKE '% ME[., ]%'
(전체 단어를 찾으려면 인용 된 문자열에 공백을 넣거나 ME가 더 큰 단어의 일부가 될 수 있으면 공백을 남겨 두십시오).