Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting
Die Funktion POSITION
Gibt den Ort der angegebenen Unterzeichenfolge innerhalb einer Zeichenfolge zurück.
Ähnliche Funktionen finden Sie unter Funktion CHARINDEX und Die Funktion STRPOS.
Syntax
POSITION(substring IN string )
Argumente
- substring
-
Die Unterzeichenfolge, die innerhalb der Zeichenfolge gesucht werden soll.
- string
-
Die Zeichenfolge oder Spalte, die durchsucht werden soll.
Rückgabetyp
Die POSITION-Funktion gibt eine INTEGER zurück, die der Position der Teilzeichenfolge entspricht (eins-basiert, nicht null-basiert). Die Position basiert auf der Anzahl der Zeichen, nicht der Bytes. Daher werden Zeichen mit mehreren Bytes als einzelne Zeichen gezählt. POSITION gibt 0 zurück, wenn die Teilzeichenfolge nicht innerhalb der Zeichenfolge gefunden wird.
Beispiele
Verwenden Sie das folgende Beispiel, um die Position der Zeichenfolge fish innerhalb des Worts dog zu zeigen.
SELECT POSITION('fish' IN 'dog');+-----------+ | position | +-----------+ | 0 | +-----------+
Verwenden Sie das folgende Beispiel, um die Position der Zeichenfolge fish innerhalb des Worts dogfish zu zeigen.
SELECT POSITION('fish' IN 'dogfish');+-----------+ | position | +-----------+ | 4 | +-----------+
Im folgenden Beispiel wird die Tabelle SALES aus der TICKIT-Beispieldatenbank verwendet. Weitere Informationen finden Sie unter Beispieldatenbank.
Verwenden Sie das folgende Beispiel, um die Zahl der bestimmten Verkaufstransaktionen mit einer Kommission von mehr als 999,00 aus der Tabelle SALES zurückzugeben. Dieser Befehl zählt Provisionen über 999,00, indem geprüft wird, ob die Dezimalzahl mehr als 4 Stellen vom Anfang des Provisionswerts entfernt ist.
SELECT DISTINCT POSITION('.' IN commission), COUNT (POSITION('.' IN commission)) FROM sales WHERE POSITION('.' IN commission) > 4 GROUP BY POSITION('.' IN commission) ORDER BY 1,2;+-----------+-------+ | position | count | +-----------+-------+ | 5 | 629 | +-----------+-------+