替换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 ...