SQL-ServerOnlineDokumentation:
PATINDEX (T-SQL)
Gibt f�r alle g�ltigen Text- und Zeichendatentypen die Startposition des
ersten Auftretens eines Musters in einem angegebenen Ausdruck bzw. Null,
wenn das Muster nicht gefunden wird, zur�ck.
Syntax
PATINDEX('%pattern%', expression)
Argumente
pattern
Dies ist eine Literalzeichenfolge. Es k�nnen Platzhalterzeichen verwendet
werden; allerdings muss das %-Zeichen vor und nach pattern eingef�gt werden
(au�er wenn Sie nach dem ersten oder letzten Zeichen suchen). pattern ist
ein Ausdruck mit einem Datentyp aus der Kategorie der kurzen Zeichen.
expression
Dies ist ein Ausdruck, in der Regel eine Spalte, die nach dem angegebenen
Muster durchsucht wird. expression ist ein Ausdruck mit einem Datentyp aus
der Kategorie der Zeichenfolgen.
R�ckgabetypen
int
Hinweise
PATINDEX ist bei text-Datentypen n�tzlich; es kann in einer WHERE-Klausel
zus�tzlich zu IS NULL, IS NOT NULL und LIKE (die einzigen anderen
Vergleiche, die f�r text in einer WHERE-Klausel zul�ssig sind) verwendet
werden.
Wenn pattern oder expression gleich NULL ist, gibt PATINDEX den Wert NULL
zur�ck, wenn der Kompatibilit�tsgrad der Datenbank 70 ist. Wenn der
Kompatibilit�tsgrad der Datenbank 65 oder niedriger ist, gibt PATINDEX nur
dann NULL zur�ck, wenn sowohl pattern als auch expression gleich NULL sind.
Beispiele
A. Verwenden eines Musters mit PATINDEX
Dieses Beispiel sucht die Position, bei der das Muster "wonderful" in einer
bestimmten Zeile der notes-Spalte in der titles-Tabelle beginnt.
USE pubs
GO
SELECT PATINDEX('%wonderful%', notes)
FROM titles
WHERE title_id = 'TC3218'
GO
Im Folgenden wird das Resultset aufgef�hrt:
-----------
47
(1 row(s) affected)
Wenn Sie die zu durchsuchenden Zeilen nicht durch eine WHERE-Klausel
beschr�nken, gibt die Abfrage alle Zeilen in der Tabelle zur�ck und
berichtet Werte ungleich Null f�r die Zeilen, in denen das Muster gefunden
wurde, sowie Null f�r alle Zeilen, in denen das Muster nicht gefunden wurde.
B. Verwenden von Platzhalterzeichen bei PATINDEX
Dieses Beispiel verwendet Platzhalter zum Suchen der Position, bei der das
Muster "won_erful" in einer bestimmten Zeile der notes-Spalte in der
titles-Tabelle beginnt. Der Unterstrich ist hier ein Platzhalter, der f�r
ein beliebiges Zeichen steht.
USE pubs
GO
SELECT PATINDEX('%won_erful%', notes)
FROM titles
WHERE title_id = 'TC3218'
GO
Im Folgenden wird das Resultset aufgef�hrt:
------------
47
(1 row(s) affected)
Wenn Sie die zu durchsuchenden Zeilen nicht beschr�nken, gibt die Abfrage
alle Zeilen in der Tabelle zur�ck und berichtet Werte ungleich Null f�r die
Zeilen, in denen das Muster gefunden wurde.
Siehe auch
Datentypen Zeichenfolgenfunktionen
(c) 1988-98 Microsoft Corporation. Alle Rechte vorbehalten.
> -----Original Message-----
> From: Alexander Bohle [mailto:[EMAIL PROTECTED]]
> Sent: Friday, October 05, 2001 4:43 PM
> To: ASP Datenbankprogrammierung
> Subject: [aspdedatabase] AW: [aspdedatabase] AW: [aspdedatabase] AW:
> [aspdedatabase] AW: [aspdedatabase] AW: [aspdedatabase] AW:
> [aspdedatabase] AW: [aspdedatabase] AW: [aspdedatabase] UNION Abfrage
> �ber Memo-Feld
>
>
> Gibt es irgendwo eine Doku zu "PATINDEX (POSITION oder LOCATE
> in Jet-SQL)"?
>
> Alex
>
>
>
> -----Urspr�ngliche Nachricht-----
> Von: Joachim van de Bruck [mailto:[EMAIL PROTECTED]]
> Gesendet: Freitag, 5. Oktober 2001 16:33
> An: ASP Datenbankprogrammierung
> Betreff: [aspdedatabase] AW: [aspdedatabase] AW: [aspdedatabase] AW:
> [aspdedatabase] AW: [aspdedatabase] AW: [aspdedatabase] AW:
> [aspdedatabase] AW: [aspdedatabase] UNION Abfrage �ber Memo-Feld
>
>
> Hallo!
>
> > Hi,
> > Du hast auf jeden Fall Recht, aber wenn ich
> > "...where ... and link_pool.pool_id in (50,51,34,20,11)" benutze,
> > habe ich nicht die M�glichkeit nach der benutzerdefinierten
> Reihenfolge zu
> > sortieren.
> > Ich habe nur die M�glichkeit nach in der Tabelle
> vorkommenden Spalten
> zu
> > sortieren.
> > Deshalb muss ich mit UNION f�r jede Zeile des RS das Feld 'sort' mit
> dem
> > entsprechendem Wert einbauen.
>
> Nein, es geht auf jeden Fall ohne UNION.
> F�r die "Sortierung" benutzt Du einfach die SQL-Funktion PATINDEX
> (POSITION oder LOCATE in Jet-SQL) analog zu der INSTR-Funktion in
> VBScript.
>
> Auf keinen Fall brauchst Du UNION.
>
> Aber wenn's l�uft, ist's ja gut.
>
> Freundliche Gr��e
> Joachim van de Bruck
>
>
>
> | [aspdedatabase] als [EMAIL PROTECTED] subscribed
> | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
> | Sie k�nnen sich unter folgender URL an- und abmelden:
> | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
>
>
> | [aspdedatabase] als [EMAIL PROTECTED] subscribed
> | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
> | Sie k�nnen sich unter folgender URL an- und abmelden:
> | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
>
> _____________________________________________________________________
> This message has been checked for all known viruses by the
> MessageLabs Virus Scanning Service. For further information visit
> http://www.messagelabs.com/stats.asp
>
| [aspdedatabase] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp