POSITION ist eine Funktion zur Bearbeitung von Zeichenfolgen, die alle Datentypen bearbeitet (BIT, BLOB, and CHARACTER) und die Position einer Zeichenfolge innerhalb einer anderen zurückgibt.
POSITION gibt eine ganze Zahl zurück, die die Position einer Zeichenfolge (Suchausdruck) in einer zweiten Zeichenfolge (Quellausdruck) angibt. Position eins entspricht dem ersten Zeichen der Quellenzeichenfolge.
Falls vorhanden, gibt eine FROM-Klausel eine Position innerhalb eines Suchbegriffs an, an der die Suche beginnt. Falls es keine FROM-Klausel gibt, wird der Suchbegriff von Anfang an durchsucht.
Falls vorhanden, liefert die REPEAT-Klausel einen Wiederholungszähler, der die zurückgegebene Position als die des n-ten Laufs des Suchbegriffs innerhalb der Quellenzeichenfolge zurückgibt. Falls der Wiederholungszähler negativ ist, wird die Quellenzeichenfolge vom Schluss an durchsucht.
Wenn keine Wiederholungsklausel vorhanden ist, wird von einem Wiederholungszähler von +1 ausgegangen. Das heißt, die Position des ersten Vorkommens (vom Anfang gesehen) wird zurückgegeben. Falls der Suchbegriff eine Länge von null hat, ist das Ergebnis eins.
Falls der Suchbegriff nicht gefunden werden kann, ist das Ergebnis null; falls die FROM-Klausel vorhanden ist, gilt dies nur für den Abschnitt der Quellenzeichenfolge, der durchsucht wird; falls die REPEAT-Klausel vorhanden ist, gilt dies nur, wenn nicht genügend Zeichenfolgen vorkommen.
Falls ein Parameter NULL ist, ist das Ergebnis NULL.
Die Suchbegriffe und Quellzeichenfolgen können vom Datentyp CHARACTER, BLOB oder BIT sein, sie müssen jedoch vom gleichen Typ sein.
POSITION('Village' IN 'Hursley Village'); returns 9 POSITION('Town' IN 'Hursley Village'); returns 0 POSITION ('B' IN 'ABCABCABCABCABC'); -> gibt 2 zurück POSITION ('D' IN 'ABCABCABCABCABC'); -> gibt 0 zurück POSITION ('A' IN 'ABCABCABCABCABC' FROM 4); -> gibt 4 zurück POSITION ('C' IN 'ABCABCABCABCABC' FROM 2); -> gibt 3 zurück POSITION ('B' IN 'ABCABCABCABCABC' REPEAT 2); -> gibt 5 zurück POSITION ('C' IN 'ABCABCABCABCABC' REPEAT 4); -> gibt 12 zurück POSITION ('A' IN 'ABCABCABCABCABC' FROM 4 REPEAT 2); -> gibt 7 zurück POSITION ('AB' IN 'ABCABCABCABCABC' FROM 2 REPEAT 3); -> gibt 10 zurück POSITION ('A' IN 'ABCABCABCABCABC' REPEAT -2); -> gibt 10 zurück POSITION ('BC' IN 'ABCABCABCABCABC' FROM 2 REPEAT -3); -> gibt 5 zurück