2017-01-11 3 views
0

나는 내 db 레코드에서 'DOC = some number'를 가져와야하는 sql 쿼리를 통해 하위 문자열을 얻어야합니다. charIndex, substring 같은 모든 함수를 시도했지만 필요한 출력을 얻지 못했습니다.문자열에서 DOC를 가져 오려면 어떻게해야합니까?

출력은 다음과 같아야합니다.

Doc = some_number (22333); Doc = some_num (333) . . .

. 
select * from SMSReceived 
where ReceivedId Between 29 and 40707;; 


SELECT top 20 t.ReceivedId, SUBSTRING(s.MessageText,9,13) some_name 
FROM SMSReceived t inner join SMSReceived s on t.ReceivedId=s.ReceivedId 
where s.ReceivedId Between 29 and 40707; 

여기 아래 스크린 샷이 포함 된 쿼리입니다.

Query Result

답변

0

PATINDEX는을 지정된 문자열의 첫 번째 occurance을 제공합니다.

SELECT top 20 t.ReceivedId, SUBSTRING(s.MessageText,PATINDEX('%DOC%',s.MessageText),13) 
some_name 
    FROM SMSReceived t inner join SMSReceived s on t.ReceivedId=s.ReceivedId 
    where s.ReceivedId Between 29 and 40707; 
+0

감사합니다. :) 작동합니다. –

관련 문제