如果包含LIKE';%,则替换SELECT sql查询(PLUS)中的特定字符串文本%';替换整个结果


replacing specific strings in a SELECT sql query (PLUS) if contains LIKE '%text%' replace the whole result

替换select查询中的字符串以消除对我正在创建的文件夹名称有害的坏字符。那部分工作得很好。

SELECT cust_name = 
REPLACE(REPLACE([cust_name],'.',''),'/','-')
FROM work,dbo.cust cust_name
WHERE work.cust_id_bill_to = cust_name.cust_code AND
work.job_id = '44514' AND
work.sub_job_id = '11'

(那个)效果很好。但现在我有一个客户结果,根据商店和特许经营权,他有数百个重复的客户名称,只需要返回一个客户名称。因此,必须弄清楚如何添加代码来替换使用该字符串的整个结果。。麦当劳

因此,如果结果返回MCDONALDS STORE#4567,我需要用简单的MCDONALDS来代替它。

WHERE cust_name LIKE N %mcdonald%

不管这种情况下的全文结果如何,比如if语句与我的replace语句和通配符组合启动?将数百个结果更改为一个答案。。。如果里面有麦当劳,结果就是给我麦当劳。有什么想法可以把这些放在一起吗。TIA。JP

您可以使用CHARINDEX在另一个字符串中查找一个字符串。如果结果为0,则找不到该字符串。

然后您可以将其与CASE语句相结合。

select 
    case when charindex('mcdonalds', cust_name) = 0
        then replace(replace([cust_name],'.',''),'/','-')
        else 'mcdonalds'
    end as customer name
from ...