[SQL] SQL 문자열에 문자열의 첫 번째 발생을 교체
SQLSQL 문자열에 문자열의 첫 번째 발생을 교체
나는 "또는 CCC 또는 BBB 또는 AAA"이 "CCC 또는 BBB 또는 AAA"같은 것을 얻기 위해 우주로 첫 번째 항목을 대체 할 뭔가가있는 @temp 테이블에서 데이터를 가져올 수 있습니다. 나는 물건을 시도하고 대체하지만 그들은 나에게 원하는 결과를 얻을하지 않는 것입니다
나는 시도하는 것 :
DECLARE @stringhere as varchar(500)
DECLARE @stringtofind as varchar(500)
set @stringhere='OR contains or cccc or '
set @stringtofind='or'
select STUFF('OR contains or cccc or ',PATINDEX('or', 'OR contains or cccc or '),0 ,' ')
해결법
-
==============================
1.당신은 당신이 원하는 것을 달성하기 위해 물건과 CHARINDEX의 조합을 사용할 수 있습니다 :
당신은 당신이 원하는 것을 달성하기 위해 물건과 CHARINDEX의 조합을 사용할 수 있습니다 :
SELECT STUFF(col, CHARINDEX('substring', col), LEN('substring'), 'replacement') FROM #temp
CHARINDEX 열에서 "서브 스트링 '의 처음 나타나는 인덱스를 반환 (COL,"서브 스트링'). 다도는 '교체'이 발생을 대체합니다.
-
==============================
2.당신이 2 %가 이전 대상 문자열에 후행 그리워 보인다
당신이 2 %가 이전 대상 문자열에 후행 그리워 보인다
시도하십시오 :
select STUFF(@stringhere, PATINDEX('%' + @stringtofind + '%', @stringhere), LEN(@stringtofind), ' ')
-
==============================
3.위 그림과 같이 당신은 CHARINDEX 또는 PATINDEX을 할 수 있지만 나는 또한 경우에, 그것은 당신의 @stringhere에 포함되지 당신의 @stringtoFind을 COALESCE를 추가하는 것이 좋습니다.
위 그림과 같이 당신은 CHARINDEX 또는 PATINDEX을 할 수 있지만 나는 또한 경우에, 그것은 당신의 @stringhere에 포함되지 당신의 @stringtoFind을 COALESCE를 추가하는 것이 좋습니다.
SELECT COALESCE(STUFF(@stringhere, PATINDEX('%' + @stringtofind + '%', @stringhere), LEN(@stringtofind), ' '), @stringhere)
from https://stackoverflow.com/questions/38911588/replace-first-occurrence-of-substring-in-a-string-in-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 열로 날짜를 동적으로 회동하는 방법 (0) | 2020.05.28 |
---|---|
[SQL] PostgreSQL을 데이터베이스에 이미지를 삽입 (0) | 2020.05.28 |
[SQL] 초없는 시간 값 데이터로부터 추출하는 방법 (0) | 2020.05.28 |
[SQL] 쿼리 로컬 변수 도움말 최적화로 저장 프로 시저의 입력 매개 변수를 지정합니까? (0) | 2020.05.28 |
[SQL] ADO.NET 매개 변수를 제공하는 방법 (0) | 2020.05.28 |