Programming

문자열의 UPDATE 및 REPLACE 부분

procodes 2020. 2. 23. 12:05
반응형

문자열의 UPDATE 및 REPLACE 부분


나는 두 개의 열이있는 테이블을 가지고, 한 IDValue. 두 번째 열에서 일부 문자열의 일부를 변경하고 싶습니다.

테이블 예 :

ID            Value
---------------------------------
1             c:\temp\123\abc\111
2             c:\temp\123\abc\222
3             c:\temp\123\abc\333
4             c:\temp\123\abc\444

이제 123\Value문자열이 필요하지 않습니다. 나는 노력 UPDATEREPLACE:

UPDATE dbo.xxx
SET Value = REPLACE(Value, '%123%', '')
WHERE ID <= 4

스크립트를 실행할 때 SQL Server는 오류를보고하지 않지만 아무것도 업데이트하지 않습니다. 왜 그런 겁니까?


에 와일드 카드가 필요하지 않습니다 REPLACE. 두 번째 인수에 입력 한 문자열 만 찾으면 다음과 같이 작동합니다.

UPDATE dbo.xxx
SET Value = REPLACE(Value, '123\', '')
WHERE ID <=4

(또한 \필요하지 않다고 가정하여 교체에 추가했습니다 .)


%아래와 같이 문자 를 제거하십시오

UPDATE dbo.xxx
SET Value = REPLACE(Value, '123', '')
WHERE ID <=4

모든 행을 업데이트 할 필요가없는 큰 테이블에서 쿼리 실행 속도 를 높이 려면 수정 될 행만 업데이트하도록 선택할 수도 있습니다.

UPDATE dbo.xxx
SET Value = REPLACE(Value, '123', '')
WHERE ID <= 4
AND Value LIKE '%123%'

질문:

UPDATE tablename 
SET field_name = REPLACE(field_name , 'oldstring', 'newstring') 
WHERE field_name LIKE ('oldstring%');

당신은 7 개의 문자 인 날짜 코드가있는 테이블이 하나 있습니다.

"32-1000"

이제 모두 교체하고 싶습니다

"32-"

"14-"

실행해야하는 SQL 쿼리는

Update Products Set Code = replace(Code, '32-', '14-') Where ...(Put your where statement in here)

누구나 당신의 스크립트를 바꾸고 싶어합니다.

update dbo.[TABLE_NAME] set COLUMN_NAME= replace(COLUMN_NAME, 'old_value', 'new_value') where COLUMN_NAME like %CONDITION%


CREATE TABLE tbl_PersonalDetail
(ID INT IDENTITY ,[Date] nvarchar(20), Name nvarchar(20), GenderID int);

INSERT INTO Tbl_PersonalDetail VALUES(N'18-4-2015', N'Monay', 2),
                                     (N'31-3-2015', N'Monay', 2),
                                     (N'28-12-2015', N'Monay', 2),
                                     (N'19-4-2015', N'Monay', 2)

DECLARE @Date Nvarchar(200)

SET @Date = (SELECT [Date] FROM Tbl_PersonalDetail WHERE ID = 2)

Update Tbl_PersonalDetail SET [Date] = (REPLACE(@Date , '-','/')) WHERE ID = 2 

아래 업데이트 쿼리를 사용해야합니다

UPDATE dbo.xxx SET Value=REPLACE(Value,'123\','') WHERE Id IN(1, 2, 3, 4)

UPDATE dbo.xxx SET Value=REPLACE(Value,'123\','') WHERE Id <= 4

위의 쿼리 중 하나가 작동해야합니다.


이 시도:

UPDATE dbo.tbl_example
SET section = REPLACE(section, 'RafSeparator', '@')

참고 URL : https://stackoverflow.com/questions/17365222/update-and-replace-part-of-a-string



반응형