사용자 SQLServer 2005 다음은 문자열의 예입니다. } {\ F1 \ fnil \ fcharset0 굴림;}} \ viewkind4 \ UC1 \ PARD \ F0 \ F1의 \의 FS20의 \ 파 \ fs54 1000} 내가 '굴림'어떤 글꼴 이름을 대체 할select 문에서 여러 인스턴스 바꾸기
Select Replace(textlong1,
CASE When CharIndex(';',textlong1)> 10 Then
SubString(textlong1
, Charindex('fcharset',textlong1)+10
, CharIndex(';',textlong1) - Charindex('fcharset',textlong1)-10)
Else '' End
, 'Times New Roman') From exampletable
나는 경우 stateme을 사용하고 있습니다 :
나는 (textlong1가 필드)와 첫 번째를 얻을 수 있습니다 SubString의 오류를 방지하려면 nt.
루프를 통과해도 'fcharset'이 대체되지 않으므로 두 번째 인스턴스를 찾지 못합니다 (항상 첫 번째 인스턴스에 걸렸습니다).
'fcharset'을 대체하지 않으므로 첫 번째 수정 된 항목을 '건너 뛰기'로 바꿀 수 없습니다 (수정 사항보기 참조). – JeffO
시작하기 전에 모든 "fcharset0 Times New Roman"을 "fcharset0 Arial Rounded MT Bold"로 바꾸십시오. 모든 루프 반복, 인덱스 1에서 검색 시작 또는 "fcharset0 Times New Roman"의 첫 번째 발생 이후. – Andomar
도움을 주셔서 감사합니다. 다음과 같이 추가했습니다. @Start int를 선언합니다. - 시작으로 모든 CharIndex 함수에 this를 포함합니다. - While 루프의 최신 행 SET @Start = Charindex (';', @ next, @Start) – JeffO