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

时间:2015-12-21 19:26:49

标签: php mysql

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

1 个答案:

答案 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 ...