नेस्टेड प्रतिस्थापन ठीक है, लेकिन जैसे-जैसे नेस्टिंग का स्तर बढ़ता है आपके कोड की पठनीयता कम होती जाती है। अगर मेरे पास बदलने के लिए बड़ी संख्या में पात्र होते तो मैं नीचे दी गई तालिका संचालित दृष्टिकोण की तरह कुछ क्लीनर का विकल्प चुनता।
declare @Category varchar(25)
set @Category = 'ABC & DEF/GHI, LMN OP'
-- nested replace
select replace(replace(replace(replace(@Category, ' & ', '-'), '/', '-'), ', ', '-'), ' ', '-') as Department
-- table driven
declare @t table (ReplaceThis varchar(10), WithThis varchar(10))
insert into @t
values (' & ', '-'),
('/', '-'),
(', ', '-'),
(' ', '-')
select @Category = replace(@Category, ReplaceThis, isnull(WithThis, ''))
from @t
where charindex(ReplaceThis, @Category) > 0;
select @Category [Department]