Transact-SQL: Wie symbole ich eine Zeichenfolge?

8

Ich möchte in der Lage sein, eine Eingabezeichenfolge aus einem Textfeld zu token, um meine Abfrage auszuführen. Beispiel: Benutzer gibt "abc xyz 123" in das Textfeld ein. Ich möchte das tun:

%Vor%

Danke.

    
user776676 02.06.2011, 02:01
quelle

4 Antworten

6

Verwenden einer String-Split-Funktion (zum Beispiel wie dieser ), könntest du so etwas haben:

%Vor%     
Andriy M 02.06.2011, 04:50
quelle
1

Eine mögliche Lösung besteht darin, dass Sie die Zeichenfolge in Ihre Tokens aufteilen und sie für jedes Token in eine temporäre Tabelle einfügen und dann Ihre temporäre Tabelle mit Ihrer Suchtabelle verknüpfen und in der Verknüpfung ein ähnliches "%" + ausführen tokenColumn + '%', um alle Ihre Zeilen zu erhalten, die einen Wert aus Ihren Tokens enthalten

Hier ist ein Beispiel für das Teilen der Zeichenfolge: Ссылка

    
Avitus 02.06.2011 02:06
quelle
0

Sie können dynamisches SQL verwenden, um dies zu erreichen:

%Vor%

[Bearbeiten] Als Antwort auf Avitus 'Kommentar:

Nicht die perfekteste Lösung. Wenn jedoch jemand die Drop-Tabelle Test1 eingibt, lautet die Abfrage SELECT * FROM Test1 WHERE Name like '%drop%' or Name like '%table%' or Name like '%Test1%'

    
Alex Aza 02.06.2011 02:08
quelle
0

Ich habe die gleiche Frage. Ich habe 1200 Reihen von Strings, die durch ein Leerzeichen getrennt werden. Meine Antwort ist eine Tabellenkalkulation wie Open Office Calc. Wenn Sie sie dann in db einfügen müssen, können Sie Einfügeskripte über die Formel generieren. Dies wird nicht SQL verwenden, aber es könnte Ihr Problem wie meins lösen.

    
thirdy 16.11.2012 01:38
quelle

Tags und Links