답변:
CHARINDEX ()는 더 큰 문자열에서 하위 문자열을 검색하고 일치하는 위치를 반환하거나 일치하는 항목이 없으면 0을 반환합니다.
if CHARINDEX('ME',@mainString) > 0
begin
--do something
end
다니엘스의 답변을 편집 하거나 단어의 하위 구성 요소가 아닌 단어를 찾으려면 CHARINDEX 호출은 다음과 같습니다.
CHARINDEX(' ME ',' ' + REPLACE(REPLACE(@mainString,',',' '),'.',' ') + ' ')
발생할 수있는 다른 구두점에 대해 재귀 REPLACE () 호출을 더 추가하십시오.
REPLACE
자체적으로 호출 되는 경우 입니다. "중첩 됨"은 함수 호출 결과가 즉시 다른 함수로 전달되는 경우입니다.
select CHARINDEX('ME' collate Latin1_General_CS_AS,'Home')
하고 select CHARINDEX('ME' collate Latin1_General_CI_AS,'Home')
. 데이터 정렬에서 CS
대소 문자 구분을 나타내며 작업 할 수 있다고 확신합니다 CI
.
술어에서 와일드 카드를 사용할 수 있습니다 (IF, WHERE 또는 ON 이후).
@mainstring LIKE '%' + @substring + '%'
이 특정한 경우에
' ' + @mainstring + ' ' LIKE '% ME[., ]%'
(전체 단어를 찾으려면 인용 된 문자열에 공백을 넣거나 ME가 더 큰 단어의 일부가 될 수 있으면 공백을 남겨 두십시오).
N
열이 인 경우 모든 문자열 상수 앞에 접두사를 붙이는 것을 잊지 마십시오 nvarchar
. 그렇지 않으면 행당 변환을 얻습니다)