programing

문자열의 UPDATE 및 REPLACE 부분

powerit 2023. 4. 8. 09:51
반응형

문자열의 UPDATE 및 REPLACE 부분

기둥 두 개로 된 테이블이 있는데ID그리고.Value. 두 번째 열에 있는 문자열의 일부를 변경합니다.

표의 예:

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문자열은 필요 없습니다.나는 노력했다.UPDATE그리고.REPLACE:

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

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

Wildcards는 필요 없습니다.REPLACE- 두 번째 인수에 입력한 문자열만 검색되므로 다음 기능이 작동합니다.

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

바꿀 열이 유형인 경우text또는ntextnvarchar에게 전달해야 합니다.

UPDATE dbo.xxx
SET Value = REPLACE(CAST(Value as nVarchar(4000)), '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.TblNews
SET keyWords = REPLACE(keyWords, '-', N'،')

도움말: dbo.TblNews -- 테이블 이름

keyWords -- 파일 이름

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

반응형