SQL Server 테이블 열에서 문자열을 바꾸는 방법
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
이 replace
함수의 인수 1에 유효하지 않습니다 .
이 쿼리를 사용할 수 있습니다
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
이지만 replace 기능을 실행 한 후에는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
이것이 더 나은 시각화를 제공하기를 바랍니다.
select replace(ImagePath, '~/', '../') as NewImagePath from tblMyTable
여기서 "ImagePath"는 열 이름입니다.
"NewImagePath"는 임시 열입니다. "ImagePath"의 이름 삽입
"~ /"은 현재 문자열입니다. (오래된 문자열)
"../"는 필요한 문자열입니다. (새 문자열)
"tblMyTable"은 데이터베이스의 테이블입니다.
대상 열 유형이 text 와 같은 varchar / nvarchar 이외의 경우 열 값을 문자열로 캐스트 한 후 다음과 같이 변환해야합니다.
update URL_TABLE
set Parameters = REPLACE ( cast(Parameters as varchar(max)), 'india', 'bharat')
where URL_ID='150721_013359670'
replace 기능을 사용하여 경로를 교체해야합니다.
update table_name set column_name = replace(column_name, 'oldstring', 'newstring')
여기서 column_name
변경하려는 열을 나타냅니다.
그것이 효과가 있기를 바랍니다.
런타임에 전자 메일 템플릿의 큰 텍스트를 바꿀 수도 있습니다. 여기 간단한 예가 있습니다.
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
'Programming' 카테고리의 다른 글
제목없이 DialogFragment를 만드는 방법은 무엇입니까? (0) | 2020.02.29 |
---|---|
자바 : 정적 클래스와 내부 클래스 (0) | 2020.02.29 |
NOT NIL을 사용하는 상태의 레일 (0) | 2020.02.29 |
ETag와 헤더 만료 (0) | 2020.02.29 |
CSS Box Shadow Bottom 만 해당 (0) | 2020.02.29 |