Fonction POSITION - Amazon Redshift

Amazon Redshift ne prendra plus en charge la création de nouvelles fonctions Python définies par l’utilisateur à compter du 1er novembre 2025. Si vous souhaitez utiliser des fonctions Python définies par l’utilisateur, créez-les avant cette date. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement. Pour plus d’informations, consultez le billet de blog .

Fonction POSITION

Renvoie l’emplacement de la sous-chaîne spécifiée dans une chaîne.

Consultez Fonction CHARINDEX et Fonction STRPOS pour des fonctions similaires.

Syntaxe

POSITION(substring IN string )

Arguments

substring

Sous-chaîne à rechercher dans la chaîne.

chaîne

Chaîne ou colonne à rechercher.

Type de retour

La fonction POSITION renvoie un INTEGER correspondant à la position de la sous-chaîne (de base 1, pas de base 0). La position est basée sur le nombre de caractères, pas d’octets, de sorte que les caractères à plusieurs octets soient comptés comme des caractères seuls. POSITION renvoie 0 si la sous-chaîne ne figure pas dans la chaîne.

Exemples

Pour renvoyer la position de la chaîne fish dans le mot dog, utilisez l’exemple suivant.

SELECT POSITION('fish' IN 'dog'); +-----------+ | position | +-----------+ | 0 | +-----------+

Pour renvoyer la position de la chaîne fish dans le mot dogfish, utilisez l’exemple suivant.

SELECT POSITION('fish' IN 'dogfish'); +-----------+ | position | +-----------+ | 4 | +-----------+

L’exemple suivant utilise la table SALES de l’exemple de base de données TICKIT. Pour plus d’informations, consultez Exemple de base de données.

Pour renvoyer le nombre de transactions de vente distinctes avec une commission supérieure à 999,00 dans la table SALES, utilisez l’exemple suivant. Cette commande compte les commissions supérieures à 999,00 en vérifiant si la décimale est à plus de 4 positions du début de la valeur de la commission.

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 | +-----------+-------+