sql - 如何替换字符串的一部分(多个),每个字符串都有单独的条件

标签 sql sql-server

我有一个名为 Employee 的表,其中包含以下列和值。

ID   FNAME       LNAME       CITY

1    Shahriar    Ahmed       Dhaka
2    Mamunur     Rashid      Natore, Rajshahi
3    Muntasir    Shafiq      Bogra, Rajshahi

我需要将 CITY 'Rajshahi' 的部分更改为具有 FNAME = Mamunur 和 LNAME = Rashid 的 'Northen Rajshahi'

和 CITY 'Rajshahi' 的一部分到 'Southern Rajshahi' 谁有 FNAME = Muntasir 和 LNAME = Shafiq

我作为一个新手已经尝试过,但这些似乎没有什么意义出现在这里,

谁能帮我解决这个问题。

最佳答案

您可以使用 REPLACE 函数,因为它会搜索字符串中的某些字符并将其替换为其他字符。此外, 您可以使用 CASE 表达式来满足不同的替换条件。

UPDATE Employee
SET  CITY = (CASE  
             WHEN FNAME = 'Mamunur' AND LNAME = 'Rashid' 
                  THEN REPLACE(city, 'Rajshahi', 'Northern Rajshahi') 
             WHEN FNAME = 'Muntasir' AND LNAME = 'Shafiq' 
                  THEN REPLACE(city, 'Rajshahi', 'Southern Rajshahi')            
             ELSE CITY
         END 
         );

ONLINE DEMO HERE

继续学习,

https://msdn.microsoft.com/en-us/library/ms186862.aspx

http://www.sqlteam.com/article/using-replace-in-an-update-statement

关于sql - 如何替换字符串的一部分(多个),每个字符串都有单独的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37855619/

相关文章:

sql-server - 使用外键 (FK) 作为每层次结构表 (TPH) 的鉴别器

sql-server - t sql中的相对路径?

SQL - 子查询(列名)

php mysql 将复选框返回值与字段值进行比较

sql - 计算连续 7 天内重复调用者的数量

sql-server - 如何管理事务内运行的SP中的全局临时表?

mysql - 识别表中的匹配记录

MySQL:从列表中获取下一个最接近的值

sql - 如何使 SELECT NEXT VALUE 在 SQL Server 中工作?

sql - 透视表并将结果与​​列的聚合组合