替换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'
(那)很棒。但是现在我有一个客户结果,他根据商店和特许经营权拥有数百个重复的客户名称,只需返回1个客户名称。因此,必须弄清楚如何添加将替换使用此字符串的整个结果的代码.. mcdonald
因此,如果结果返回MCDONALDS STORE#4567
,我需要将其替换为MCDONALDS
。
WHERE cust_name LIKE N %mcdonald%
在这种情况下,无论全文结果如何,就像if语句结合我的replace语句和通配符来启动一样?将数百个结果更改为单个答案...如果它中有mcdonald,它只会给我MCDONALDS。任何想法如何将它们放在一起。 TIA。 JP
答案 0 :(得分:0)
您可以使用CHARINDEX
在另一个字符串中查找字符串。如果结果为0,则找不到该字符串。
然后你可以将它与CASE
语句结合起来。
select
case when charindex('mcdonalds', cust_name) = 0
then replace(replace([cust_name],'.',''),'/','-')
else 'mcdonalds'
end as customer name
from ...