Autor Beitrag
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Di 25.11.08 12:29 
Hallo,

ich brauche eine Stored Procedure, die mir einen per Parameter übergebenen String anhand der Leerzeichen aufteilt und damit eine Where-Bedingung ausfüllt, damit ich eine Volltextsuche mit jedem einzelnen Wort durchführen kann. Aber irgendwie komme ich nicht auf den richtigen Weg.

Kann mir jemand einen Tipp dazu geben?
UGrohne Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Di 25.11.08 17:14 
OK, hab was dazu geschrieben, was auch funktioniert. Da das Ganze aber für eine Volltextsuche werden sollte und ich inzwischen auf den Trichter gekommen bin, wie ich selbige im SQL-Server verwende, brauche ich das Statement gar nicht mehr :).

Hier jedenfalls mein Ergebnis, was sich aber sicherlich noch verbessern lässt:
ausblenden SQL-Anweisung
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
  DECLARE @charPos integer
  CREATE TABLE #searchTerms
  (
    term nvarchar(100)
  )
    SET @searchTerms = RTRIM(LTRIM(@searchTerms))

  WHILE (LEN(@searchTerms)>0)
  BEGIN
    SELECT @charPos = CHARINDEX(' ',@searchTerms)
    IF (@charPos>0)
    BEGIN
      INSERT INTO #searchTerms VALUES (SUBSTRING(@searchTerms,1,@charPos - 1))
      SET @searchTerms = SUBSTRING(@searchTerms,@charPos+1,LEN(@searchTerms)-@charPos)
    END ELSE BEGIN
      INSERT INTO #searchTerms VALUES (@searchTerms)
      SET @searchTerms = ''
    END
  END