복붙노트

[SQL] 으로 SQL Server 테이블 열에서 문자열을 대체하는 방법

SQL

으로 SQL Server 테이블 열에서 문자열을 대체하는 방법

나는 참조 경로 (UNC 또는 기타),하지만 지금은 경로가 가고 변경 테이블 (SQL 서버)가 있습니다.

경로 열에서 나는 많은 기록을 가지고 난 그냥 경로의 일부가 아닌 전체 경로를 변경해야합니다. 그리고 나는 모든 레코드에 새 하나에 같은 문자열을 변경해야합니다.

어떻게 간단한 업데이트하여이 작업을 수행 할 수 있습니다?

해결법

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

    1.그것은이 쉽다 :

    그것은이 쉽다 :

    update my_table
    set path = replace(path, 'oldstring', 'newstring')
    
  2. ==============================

    2.

    UPDATE [table]
    SET [column] = REPLACE([column], '/foo/', '/bar/')
    
  3. ==============================

    3.나는 위의 시도하지만 올바른 결과를 얻을하지 않았다. 다음 일을 수행합니다

    나는 위의 시도하지만 올바른 결과를 얻을하지 않았다. 다음 일을 수행합니다

    update table
    set path = replace(path, 'oldstring', 'newstring') where path = 'oldstring'
    
  4. ==============================

    4.

    UPDATE CustomReports_Ta
    SET vchFilter = REPLACE(CAST(vchFilter AS nvarchar(max)), '\\Ingl-report\Templates', 'C:\Customer_Templates')
    where CAST(vchFilter AS nvarchar(max)) LIKE '%\\Ingl-report\Templates%'
    

    캐스트 기능이없는 나는 오류가 발생했습니다

    인수의 데이터 유형은 NTEXT 기능을 대체의 인수 1에 대해 유효하지 않습니다.

  5. ==============================

    5.이 쿼리를 사용할 수 있습니다

    이 쿼리를 사용할 수 있습니다

    update table_name set column_name = replace (column_name , 'oldstring' ,'newstring') where column_name like 'oldstring%'
    
  6. ==============================

    6.모든 대답은 잘하지만 난 그냥 당신에게 좋은 예를 제공 할

    모든 대답은 잘하지만 난 그냥 당신에게 좋은 예를 제공 할

    select replace('this value from table', 'table',  'table but updated')
    

    이 SQL 문은 단어 "테이블"의 존재를 대체합니다 세번째 파라미터로 지정된 성명 (제 1 파라미터) 내부 (두번째 파라미터)

    초기 값은 테이블에서이 값이지만 기능을 대체 실행 한 후에는이 테이블에서 값을 업데이트하지만 것

    여기에 실제 예입니다

    UPDATE publication
    SET doi = replace(doi, '10.7440/perifrasis', '10.25025/perifrasis')
    WHERE doi like '10.7440/perifrasis%'
    

    예를 들어 우리는이 값이있는 경우

    10.7440/perifrasis.2010.1.issue-1
    

    그것은 될 것입니다

    10.25025/perifrasis.2010.1.issue-1
    

    이 당신에게 더 나은 시각화를 제공 희망

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

    7.

    select replace(ImagePath, '~/', '../') as NewImagePath from tblMyTable 
    
  8. ==============================

    8.목표 컬럼 유형이 VARCHAR / 텍스트와 같은 NVARCHAR이 아닌 경우, 우리는 문자열로 열 값을 캐스팅 한 다음으로 변환해야합니다 :

    목표 컬럼 유형이 VARCHAR / 텍스트와 같은 NVARCHAR이 아닌 경우, 우리는 문자열로 열 값을 캐스팅 한 다음으로 변환해야합니다 :

    update URL_TABLE
    set Parameters = REPLACE ( cast(Parameters as varchar(max)), 'india', 'bharat')
    where URL_ID='150721_013359670'
    
  9. ==============================

    9.당신은 기능을 대체의 도움으로 경로를 교체해야합니다.

    당신은 기능을 대체의 도움으로 경로를 교체해야합니다.

    update table_name set column_name = replace(column_name, 'oldstring', 'newstring')
    

    여기 COLUMN_NAME 변경하려는 해당 열을 의미합니다.

    작동 바랍니다.

  10. ==============================

    10.또한 여기에 대한 간단한 예입니다, 런타임에 이메일 템플릿에 대한 큰 텍스트를 대체 할 수 있습니다.

    또한 여기에 대한 간단한 예입니다, 런타임에 이메일 템플릿에 대한 큰 텍스트를 대체 할 수 있습니다.

    DECLARE @xml NVARCHAR(MAX)
    SET @xml = CAST((SELECT [column] AS 'td','',        
            ,[StartDate] AS 'td'
             FROM [table] 
             FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))
    select REPLACE((EmailTemplate), '[@xml]', @xml) as Newtemplate 
    FROM [dbo].[template] where id = 1
    
  11. from https://stackoverflow.com/questions/814548/how-to-replace-a-string-in-a-sql-server-table-column by cc-by-sa and MIT license