[ SQL Server Table ]컬럼의 문자열을 치환하는 방법
테이블이 있습니다.SQL Sever
패스( )를 참조합니다.UNC
그렇지 않으면) 하지만 이제 경로가 변경됩니다.
경로 열에는 여러 개의 레코드가 있으며 경로 전체를 변경하지 않고 경로의 일부만 변경해야 합니다.모든 레코드에서 같은 문자열을 새 문자열로 변경해야 합니다.
어떻게 하면 심플하게 할 수 있을까요?update
?
간단합니다.
update my_table
set path = replace(path, 'oldstring', 'newstring')
UPDATE [table]
SET [column] = REPLACE([column], '/foo/', '/bar/')
위 사항을 시도했지만 올바른 결과를 얻지 못했습니다.다음 항목은 다음과 같습니다.
update table
set path = replace(path, 'oldstring', 'newstring') where path = 'oldstring'
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%'
미포함CAST
함수에 오류가 발생했습니다.
인수 데이터 유형ntext
의 인수 1에는 유효하지 않습니다.replace
기능.
이 쿼리를 사용할 수 있습니다.
update table_name set column_name = replace (column_name , 'oldstring' ,'newstring') where column_name like 'oldstring%'
모든 답변이 훌륭하지만 좋은 예를 들어 드리겠습니다.
select replace('this value from table', 'table', 'table but updated')
이 SQL 문은 지정된 문(첫 번째 매개 변수) 내에 있는 단어 "table"(두 번째 매개 변수)의 존재를 세 번째 매개 변수로 대체합니다.
초기값은this value from table
그러나 치환 기능을 실행한 후에는this value from table but updated
그리고 여기 진짜 예가 있다.
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
이것이 더 나은 시각화를 제공하기를 바랍니다.
치환 기능을 사용하여 경로를 치환해야 합니다.
update table_name set column_name = replace(column_name, 'oldstring', 'newstring')
여기서column_name
변경할 컬럼을 나타냅니다.
효과가 있기를 바랍니다.
select replace(ImagePath, '~/', '../') as NewImagePath from tblMyTable
여기서 "ImagePath"는 내 열 이름입니다.
"NewImagePath"는 "ImagePath"의 임시 열 이름입니다.
"~/"가 현재 문자열입니다.(오래된 문자열)
"../"는 필요한 문자열입니다.(새로운 문자열)
"tblMyTable"은 데이터베이스의 테이블입니다.
대상 열 유형이 varchar/nvarchar 유사 텍스트가 아닌 경우 열 값을 문자열로 캐스팅한 다음 다음과 같이 변환해야 합니다.
update URL_TABLE
set Parameters = REPLACE ( cast(Parameters as varchar(max)), 'india', 'bharat')
where URL_ID='150721_013359670'
실행 시 전자 메일 템플릿의 큰 텍스트를 바꿀 수도 있습니다. 여기에 간단한 예가 있습니다.
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
언급URL : https://stackoverflow.com/questions/814548/how-to-replace-a-string-in-a-sql-server-table-column
'programing' 카테고리의 다른 글
열 값이 고유하지 않은 모든 행을 선택하는 방법 (0) | 2023.04.07 |
---|---|
SQL Server: SQL 쿼리를 사용하여 테이블 기본 키 가져오기 (0) | 2023.04.07 |
SQL Server Management Studio에서 기억된 로그인 및 암호 목록 제거 (0) | 2023.04.07 |
여러 열의 SQL MAX? (0) | 2023.04.07 |
VB의 C# 버전은 무엇입니까?NET의 Input Box? (0) | 2023.04.07 |