任何更改列中特定数据的方法,例如Mr to Dr,其中包含名称

时间:2017-03-27 11:15:20

标签: sql sql-server

我正在努力改变“医生”的标题。在一个数据库中,我只是想知道是否有一个SQL查询,我可以运行它来更改它们。

The column im trying to change

我要问的是,我可以通过任何方式更新专栏,以便添加' Dr'在名称前面取代“小姐”,“先生”等。等

我正在考虑使用包含通配符函数的SQL语句来更新它,但不确定它是否会改变细节。

谢谢,

卡尔

3 个答案:

答案 0 :(得分:0)

使用REPLACE选项

UPDATE table_name
SET column_name = REPLACE(column_name, 'Mr.', 'Dr.')
WHERE column_name LIKE 'Mr.%'

答案 1 :(得分:0)

试试这个

Update myTable
set name = replace(replace(name,'Miss ','Dr '),'Mr ','Dr ')

答案 2 :(得分:0)

我可能会建议:

update t
    set col = stuff(col, 1, charindex(' ', col + ' '), 'Dr');

替换字符串中的第一个单词。您可能需要格外小心并添加where子句。

update t
    set col = stuff(col, 1, charindex(' ', col + ' '), 'Dr') 
    where col like 'Miss %' or col like 'Mr %' or
          col like 'Mrs %' or col like 'Ms %';

replace()的问题在于它取代了字符串中的所有匹配项。虽然敬意不太可能在名字中,但你可能会有像#34; Missy Elliott"这样的名字。