Mithilfe von T-SQL entfernen angegebenen Wörter aus einem string

Ich bin versucht, zu beseitigen bestimmte Zeichenfolgen aus einem Textfeld in einer Tabelle. Zu diesem Zweck habe ich aus dieser Funktion


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

Ich bin neu in SQL-Programmierung und möchte zu verbessern. Angenommen, ich wollte eine Tabelle, die eine Liste der "bad words", die ich sein wollte, entfernt aus einem string und Schleife durch, wenn die Reinigung der Beschreibung.

Sollte ich darauf hinweisen, dass dieser Prozess muss so effizient wie möglich sein, da beschäftige ich mich mit 15 Millionen Datensätzen.

  • SQL server hat eine "Ersetzen" - Funktion würde ich vorschlagen, es zu benutzen und ersetzen Sie mit ". Hier ist ein MSFT link, Wenn Sie sind besorgt über die Leistung kann man sich in die Regulären Ausdrücke, die zu funktionieren scheint sogar noch schneller.
  • Ich bin besorgt, dass mit der Vanille ersetzen Funktion bekomme ich Teile von word entfernt und ließ mich eine lästige bit-string. Wie, wenn ich ersetzen Sie "Ausführen" und findet es "Läuft" werde ich Links mit "ning". Ich will sehr viel, um zu starten mit regulären Ausdrücken, aber ich verstehe Sie brauchen, um über verschiedene Privilegien für die Datenbank und die zusätzliche software (visual studio?) installiert auf dem computer - also im moment ist dies nicht eine option.
  • Ich verstehe und Schätze die Sorge. Aber es ist ein problem, das Sie nicht vermeiden können, in vollem Umfang. der einzige Weg, um wirklich dieses Problem verringert werden, ist die visuelle Inspektion jeder Eintrag; mit einer Zustimmung Prozess. auch mit Ihrer Technik, die Sie würde laufen in Probleme mit es an das Ende eines Satzes. BADWORD.
InformationsquelleAutor user1075081 | 2012-06-25
Schreibe einen Kommentar