You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2016中如何仅替换独立Coat字符串而非Furry Coat

精准替换以"Coat"开头的字符串(排除"Furry Coat")

在SQL Server 2016中,你可以通过CASE语句结合模式匹配实现需求,只替换以"Coat"开头且不属于"Furry Coat"系列的字符串,以下是两种简洁的实现写法:

方法1:使用SUBSTRING拼接

SELECT 
    CASE 
        WHEN Type LIKE 'Coat%' AND Type NOT LIKE 'Furry Coat%'
        THEN 'Skinny Coat' + SUBSTRING(Type, 5, LEN(Type))
        ELSE Type
    END AS Type
FROM YourTableName;

方法2:使用STUFF函数替换

SELECT 
    CASE 
        WHEN Type LIKE 'Coat%' AND Type NOT LIKE 'Furry Coat%'
        THEN STUFF(Type, 1, 4, 'Skinny Coat')
        ELSE Type
    END AS Type
FROM YourTableName;

逻辑说明:

  • LIKE 'Coat%':筛选所有以"Coat"开头的记录
  • NOT LIKE 'Furry Coat%':排除以"Furry Coat"开头的记录,避免误替换
  • 符合条件的记录:
    • 方法1用"Skinny Coat"拼接原字符串从第5位开始的内容(跳过原开头的"Coat")
    • 方法2用STUFF直接将原字符串前4个字符("Coat")替换为"Skinny Coat"
  • 不符合条件的记录直接保留原Type值

处理后,"Coat 2"会变为"Skinny Coat 2","Furry Coat 1"则保持不变。

内容的提问来源于stack exchange,提问作者Jdbfkfo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:48:24