DECLARE @pk UNIQUEIDENTIFIER,
@bezeichnung VARCHAR(255),
@counter INT
SET @counter = ( SELECT count(*)
FROM unternehmen )
WHILE @counter > 0
BEGIN
SET @pk = ( SELECT pk
FROM ( SELECT TOP (@counter) pk,
ROW_NUMBER() OVER (ORDER BY pk) AS zeilennr
FROM unternehmen
ORDER BY pk ) x
WHERE x.zeilennr = @counter )
SET @bezeichnung = ( SELECT bezeichnung
FROM unternehmen
WHERE pk = @pk )
-- Phase 1.1: Zeichen durch Zeichen ersetzen
SET @bezeichnung = lower(@bezeichnung)
SET @bezeichnung = replace(@bezeichnung,'','')
SET @bezeichnung = replace(@bezeichnung,'²','2')
SET @bezeichnung = replace(@bezeichnung,'³','3')
SET @bezeichnung = replace(@bezeichnung,'ß','ss')
SET @bezeichnung = replace(@bezeichnung,'@','at')
SET @bezeichnung = replace(@bezeichnung,'€','e')
SET @bezeichnung = replace(@bezeichnung,'ä','ae')
SET @bezeichnung = replace(@bezeichnung,'ö','oe')
SET @bezeichnung = replace(@bezeichnung,'ü','ue')
SET @bezeichnung = replace(@bezeichnung,'á','a')
SET @bezeichnung = replace(@bezeichnung,'é','e')
SET @bezeichnung = replace(@bezeichnung,'í','i')
SET @bezeichnung = replace(@bezeichnung,'ó','o')
SET @bezeichnung = replace(@bezeichnung,'ú','u')
SET @bezeichnung = replace(@bezeichnung,'à','a')
SET @bezeichnung = replace(@bezeichnung,'è','e')
SET @bezeichnung = replace(@bezeichnung,'ì','i')
SET @bezeichnung = replace(@bezeichnung,'ò','o')
SET @bezeichnung = replace(@bezeichnung,'ù','u')
SET @bezeichnung = replace(@bezeichnung,'â','a')
SET @bezeichnung = replace(@bezeichnung,'ê','e')
SET @bezeichnung = replace(@bezeichnung,'î','i')
SET @bezeichnung = replace(@bezeichnung,'ô','o')
SET @bezeichnung = replace(@bezeichnung,'û','u')
-- Phase 1.2: Zeichen durch Leerzeichen ersetzen
SET @bezeichnung = replace(@bezeichnung,'°',' ')
SET @bezeichnung = replace(@bezeichnung,'^',' ')
SET @bezeichnung = replace(@bezeichnung,'!',' ')
SET @bezeichnung = replace(@bezeichnung,'"',' ')
SET @bezeichnung = replace(@bezeichnung,'§',' ')
SET @bezeichnung = replace(@bezeichnung,'$',' ')
SET @bezeichnung = replace(@bezeichnung,'[%]',' ')
SET @bezeichnung = replace(@bezeichnung,'/',' ')
SET @bezeichnung = replace(@bezeichnung,'=',' ')
SET @bezeichnung = replace(@bezeichnung,'\',' ')
SET @bezeichnung = replace(@bezeichnung,'#',' ')
SET @bezeichnung = replace(@bezeichnung,'.',' ')
SET @bezeichnung = replace(@bezeichnung,'[_]',' ')
SET @bezeichnung = replace(@bezeichnung,'&',' ')
SET @bezeichnung = replace(@bezeichnung,'+',' ')
SET @bezeichnung = replace(@bezeichnung,'-',' ')
-- Phase 1.3: Zeichen tilgen
SET @bezeichnung = replace(@bezeichnung,'{','')
SET @bezeichnung = replace(@bezeichnung,'(','')
SET @bezeichnung = replace(@bezeichnung,'[','')
SET @bezeichnung = replace(@bezeichnung,']','')
SET @bezeichnung = replace(@bezeichnung,')','')
SET @bezeichnung = replace(@bezeichnung,'}','')
SET @bezeichnung = replace(@bezeichnung,'?','')
SET @bezeichnung = replace(@bezeichnung,'´','')
SET @bezeichnung = replace(@bezeichnung,'`','')
SET @bezeichnung = replace(@bezeichnung,'*','')
SET @bezeichnung = replace(@bezeichnung,'~','')
SET @bezeichnung = replace(@bezeichnung,'''','')
SET @bezeichnung = replace(@bezeichnung,'>','')
SET @bezeichnung = replace(@bezeichnung,'<','')
SET @bezeichnung = replace(@bezeichnung,'|','')
SET @bezeichnung = replace(@bezeichnung,';','')
SET @bezeichnung = replace(@bezeichnung,',','')
SET @bezeichnung = replace(@bezeichnung,':','')
SET @bezeichnung = replace(@bezeichnung,'·','')
-- Phase 1.4: Wörter durch Wörter ersetzen
SET @bezeichnung = replace(@bezeichnung,' and ',' und ')
SET @bezeichnung = replace(@bezeichnung,'mbh co kg','mbhcokg')
SET @bezeichnung = replace(@bezeichnung,'gesellschaft',' gesellschaft')
SET @bezeichnung = replace(@bezeichnung,'genossenschaft',' genossenschaft')
-- Phase 1.3: Zeichen tilgen
WHILE @bezeichnung LIKE '% %'
BEGIN
SET @bezeichnung = replace(@bezeichnung,' ',' ')
END
-- Phase 2: Wörterliste befüllen
SET @bezeichnung = rtrim(ltrim(@bezeichnung))
WHILE len(@bezeichnung) >= 4
BEGIN
IF @bezeichnung LIKE '% %'
BEGIN
IF len(left(@bezeichnung,charindex(' ',@bezeichnung)-1)) >= 4
BEGIN
INSERT INTO unternehmen_woerter(fk_unt,string)
VALUES(@pk,left(@bezeichnung,charindex(' ',@bezeichnung)-1))
END
SET @bezeichnung = right(@bezeichnung,len(@bezeichnung)-charindex(' ',@bezeichnung))
END
ELSE
BEGIN
IF len(@bezeichnung) >= 4
BEGIN
INSERT INTO unternehmen_woerter(fk_unt,string)
VALUES(@pk,@bezeichnung)
END
SET @bezeichnung = ''
END
END
SET @counter = @counter - 1
END