Replace

從記錄集中永久刪除字元

  • April 6, 2017

我有一些這種格式的數據:

52-681-Functional-EHT
53-682-Functional-EGT
52-683-Functional-EZT
51-684-Functional-EYT
59-685-Functional-E5T

我想用 sql 語句永久刪除內部的“-Functional” ,這樣我的記錄現在看起來像……

52-681-EHT
53-682-EGT
52-683-EZT
51-684-EYT
59-685-E5T

我所有的研究都讓我想到了,Replace但這似乎只是在一個select並且不能完全弄清楚如何將它形成一個適當的update陳述。同樣,我想刪除字元串FOREVER

在此處輸入圖像描述

創建腳本:

create table part (
id int identity(1,1) PRIMARY KEY,
Partname nvarchar(50))

insert into Part (Partname)
values ('52-681-Functional-EHT'),
('53-682-Functional-EGT'),
('52-683-Functional-EZT'),
('51-684-Functional-EYT'),
('59-685-Functional-E5T')

這個簡單的更新對您不起作用是有原因的嗎?

update part set partname = replace(partname,'functional-','')

select * from part

REPLACE在 an中使用 aUPDATE相當簡單。在你的情況下,你會做這樣的事情:

UPDATE p
SET Partname = REPLACE(Partname,'-Functional','')
FROM #part p;

然而,解決同樣的問題總是有不同的方法。您還可以通過使用SUBSTRING根據字元位置建構所需的值來處理更新:

UPDATE p
SET Partname = SUBSTRING(Partname,1,6) + SUBSTRING(Partname,18,4)
FROM #part p;

引用自:https://dba.stackexchange.com/questions/169319