복붙노트

[SQL] 문자열의 UPDATE 및 REPLACE는 부분

SQL

문자열의 UPDATE 및 REPLACE는 부분

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

테이블의 예 :

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 \ 필요하지 않습니다. 나는 UPDATE를 시도하고 REPLACE :

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

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

해결법

  1. ==============================

    1.당신은 와일드 카드를 필요로하지 않는 REPLACE - 다음 작동합니다, 그래서 그냥, 두 번째 인수에 입력 한 문자열을 찾습니다

    당신은 와일드 카드를 필요로하지 않는 REPLACE - 다음 작동합니다, 그래서 그냥, 두 번째 인수에 입력 한 문자열을 찾습니다

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

    (나는 또한 당신이 그 중 하나 필요하지 않은 가정으로 대체에 \ 추가)

  2. ==============================

    2.다음과 같이 %의 문자를 제거하려고

    다음과 같이 %의 문자를 제거하려고

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

    3.빨리하지 모든 라인을 업데이트해야하는 큰 테이블에서 쿼리를 실행하려면, 당신은 또한 수정됩니다 만 업데이트 행을 선택할 수 있습니다 :

    빨리하지 모든 라인을 업데이트해야하는 큰 테이블에서 쿼리를 실행하려면, 당신은 또한 수정됩니다 만 업데이트 행을 선택할 수 있습니다 :

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

    4.질문:

    질문:

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

    5.당신은 같은 일곱 문자 뭔가를 당신이 날짜 코드가 하나 개의 테이블을 가지고

    당신은 같은 일곱 문자 뭔가를 당신이 날짜 코드가 하나 개의 테이블을 가지고

    "32-1000"
    

    지금 당신은 모두를 대체 할

    "32-"
    

    "14-"
    

    당신이 실행해야하는 SQL 쿼리입니다

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

    6.누군가를 위해 스크립트를 대체합니다.

    누군가를 위해 스크립트를 대체합니다.

    업데이트 DBO. TABLE_NAME] 세트 COLUMN_NAME = 대체 (COLUMN_NAME를 'OLD_VALUE', 'NEW_VALUE') 여기서 COLUMN_NAME % 조건 % 추천

  7. ==============================

    7.

    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 
    
  8. ==============================

    8.당신은 아래의 업데이트 쿼리를 사용해야합니다

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

    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
    

    어느 위의 쿼리로 작동합니다.

  9. ==============================

    9.페르시아어 단어를 교체

    페르시아어 단어를 교체

    UPDATE dbo.TblNews
    SET keyWords = REPLACE(keyWords, '-', N'،')
    

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

    키워드 - 필드의 이름

  10. from https://stackoverflow.com/questions/17365222/update-and-replace-part-of-a-string by cc-by-sa and MIT license