나는 두 개의 열이있는 테이블을 가지고, 한 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는 오류를보고하지 않지만 아무것도 업데이트하지 않습니다. 왜 그런 겁니까?
답변
에 와일드 카드가 필요하지 않습니다 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