Próbuję usunąć określone ciągi z pola Opis w tabeli. W tym celu zrobiłem tę funkcjęUżycie T-SQL usuwa określone słowa z ciągu znaków
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
Jestem nowym do programowania SQL i chciałbyś poprawić w tej sprawie. Przypuśćmy, że chcę mieć tabelę, która zawiera listę "złych słów", które chciałem usunąć z ciągu i przechodzić przez nie podczas czyszczenia opisu.
Chciałbym podkreślić, że proces ten musi być tak wydajny, jak to tylko możliwe, ponieważ mam do czynienia z 15 milionami rekordów.
Serwer SQL ma funkcję "Zamień" Sugerowałbym użycie go i zastąpienie przez ''. Oto link do MSFT (http://msdn.microsoft.com/en-us/library/ms186862.aspx) Jeśli martwisz się wydajnością, możesz zajrzeć do wyrażeń regularnych, które działają jeszcze szybciej. – xQbert
Jestem zaniepokojony, że używając funkcji zamiany wanilii, otrzymam części usuniętego słowa pozostawiając mi denerwujący kawałek sznurka. Tak jak gdybym zamienił "Run", a znajdzie "Running", pozostanę przy "ning". Bardzo chcę zacząć używać wyrażeń regularnych, ale rozumiem, że trzeba mieć różne przywileje w bazie danych i mieć dodatkowe oprogramowanie (studio graficzne?) Zainstalowane na komputerze - w tej chwili nie jest to możliwe. – user1075081
Rozumiem i doceniam problem. Jest to jednak problem, którego nie można całkowicie uniknąć. jedynym sposobem na skuteczne złagodzenie tego problemu jest inspekcja wizualna każdego wpisu; z procesem zatwierdzania. nawet z twoją techniką napotkasz problemy na końcu zdania. ZŁE SŁOWO. – xQbert