Bazı dizeleri bir tablodaki Açıklama alanından kaldırmaya çalışıyorum. Bu amaçla ben bu işleviT-SQL kullanma Belirtilen sözcükleri bir dizeden kaldırın
CREATE FUNCTION fnDescriptionClean
(@strDescription varchar(50))
RETURNS varchar(50)
AS
BEGIN
declare @Return varchar(50)
declare @badword varchar(50)
set @badword = 'Front'
set @strDescription = CASE
--Remove from mid string
WHEN @strDescription LIKE '% ' + @Badword +' %' THEN REPLACE(@strDescription,' ' + @Badword + ' ',' ')
--Remove from start of string
WHEN @strDescription LIKE @Badword +' %' THEN RIGHT(@strDescription, (len(@strDescription)-(len(@Badword)+1)))
--Remove from end of string
WHEN @strDescription LIKE '% ' + @Badword THEN LEFT(@strDescription, (len(@strDescription)-(len(@Badword)+1)))
ELSE @strDescription END
set @badword = 'Right'
set @strDescription = CASE
WHEN @strDescription LIKE '% ' + @Badword +' %' THEN REPLACE(@strDescription,' ' + @Badword + ' ',' ')
WHEN @strDescription LIKE @Badword +' %' THEN RIGHT(@strDescription, (len(@strDescription)-(len(@Badword)+1)))
WHEN @strDescription LIKE '% ' + @Badword THEN LEFT(@strDescription, (len(@strDescription)-(len(@Badword)+1)))
ELSE @strDescription END
RETURN @strDescription
end
SQL programlama için yeni ve bu konuda geliştirmek istiyorum yaptık. Varsayalım ki, bir yazı dizisinden kaldırılmak istenen 'kötü kelimeler' listesinin bir listesini içeren bir tabloya sahip olmak istedim ve açıklamayı temizlerken bunun içinden geçtim.
Bu işlemin 15 milyon kayıtla uğraşırken olabildiğince verimli olması gerektiğine dikkat etmeliyim.
SQL sunucusunda 'Değiştir' işlevi kullanılmasını öneririm ve '' ile değiştirin. İşte bir [MSFT bağlantısı] (http://msdn.microsoft.com/en-us/library/ms186862.aspx) Performanstan endişe ediyorsanız, daha hızlı çalışacak şekilde düzenli ifadelere bakabilirdiniz. – xQbert
Vanilya değiştirme işlevini kullanarak, bir sözcüğün parçalarını alacağım, beni biraz sinir bozucu bir parça bırakıyor. "Çalıştır" yerine "Koşu" yı bulur ve "ning" ile kalırım. Düzenli ifadeler kullanmaya başlamak istiyorum ancak veri tabanında çeşitli ayrıcalıklara sahip olmanız ve bilgisayarda ek bir yazılıma (görsel stüdyoya) sahip olmanız gerektiğini anlıyorum - şu anda bu bir seçenek değil. – user1075081
Endişeyi anlıyorum ve takdir ediyorum. Ancak, tam olarak önlenemediğiniz bir sorun. Bu konuyu tam olarak azaltmanın tek yolu, her girişin görsel olarak incelenmesidir; bir onay süreci ile. Tekniğinizle bile, bir cümlenin sonunda problemlerle karşılaşırsınız. KÖTÜ BİR KELİME. – xQbert