多行的Hole_ID的通道前缀名称

时间:2019-01-12 09:32:32

标签: sql sql-server sql-update

我有200条记录,其HoleID名称从MGGC0001到MGGC0200。但是我想用MEGC更改MGGC和sql数据库中的所有记录。您能告诉我我可以用来更新带有MEGC前缀的所有HoleID的查询吗?

谢谢!

关于, 迪内什

2 个答案:

答案 0 :(得分:1)

只需使用REPLACE

SELECT REPLACE(HOLELID, 'MGGC', 'MEGC')
FROM tbl; 

但这不会更改您的任何现有数据。 在这种情况下,请使用:

UPDATE tbl 
SET HOLELID = REPLACE(HOLELID, 'MGGC', 'MEGC');

答案 1 :(得分:0)

我强烈推荐一种更像这样的方法:

update t
    set HoleId = stuff(HoleId, 1, 4, 'MEGC')
    where HoleId like 'MGGC%';

首先,这仅影响以'MGGC'开头的行,而不是所有行。其次,这只会在字符串开头而不是字符串中的任何位置替换“ MGGC”。

或者是select

select (case when HoleId like 'MGGC%'
             then stuff(HoleId, 1, 4, 'MEGC')
             else HoleId
        end)