2012-04-06 5 views
2

Was schreibe ich in meine LIKE-Anweisung, damit sie mit allen Strings übereinstimmt, die aus zwei durch ein Leerzeichen getrennten Wörtern bestehen?SQL-Muster, das zu allen Strings passt, die aus zwei durch ein Leerzeichen getrennten Wörtern bestehen

+1

Welche Datenbank benutzen Sie? Bist du wirklich * gezwungen *, LIKE zu benutzen? –

+0

Microsoft SQL Server 2008. Und ich denke, ich sollte LIKE verwenden, weil das der Punkt der Übung ist - zu lernen, wie man LIKE verwendet. Wir haben nichts Fortgeschrittenes studiert. –

+0

Hausaufgaben Fragen sind erlaubt, aber bitte lesen Sie dies zuerst: http://meta.stackexchange.com/questions/10811/how-to-ask-and-answer-homework-questions –

Antwort

3

Sie konnten dieses versuchen:

WHERE x LIKE '%_ _%' 
    AND x NOT LIKE '% % %' 

Beachten Sie, dass es langsam sein! Wenn Ihr Tisch groß sein kann und Sie dies oft tun müssen, sollten Sie Ihr Design überdenken.

+0

Ja, das funktioniert. Danke –

+0

@MarkByers Könntest du ein bisschen mehr erklären? Die zweite Zeile sagt "nicht drei Worte"? Was ist, wenn es 4 Wörter gibt? Warum machst du die Unterstriche in der ersten Zeile? – fancyPants

+0

@ user763852 Nicht nur kopieren und einfügen. Versuche zu verstehen. Nur meine 2 Cent. Oder ist dir alles klar? – fancyPants

0

Im Allgemeinen können Sie versuchen, "[Null oder mehr ZeichenInYourString] [Leerzeichen] [null oder mehr ZeichenInYourString]" zu entsprechen.

Zum Beispiel

"[a-zA-Z0-9]*[[:space:]][a-zA-Z0-9]*"

für eine Zeichenfolge, die durch ein Leerzeichen getrennt von Kleinbuchstaben, Großbuchstaben und Zahlen zusammengesetzt ist.

+0

Funktioniert das in SQL Server 2008? –

+1

Nein, tut es nicht. –

+0

Es gab keine Erwähnung von SQL Server 2008 in dem Moment, als ich antwortete. Es funktioniert wahrscheinlich nicht, da SQL Server 2008 diese Definition der Klasse "space" nicht versteht. In diesem Fall könnten Sie einen einfachen Abstand zwischen den beiden ZeichenInYourString-Definitionen oder eines der Symbole des SQL-Servers für Leerzeichen von [hier] verwenden (http://msdn.microsoft.com/en-us/library/ms174214.aspx). –