Dans MariaDB, ELT()
est une fonction de chaîne intégrée qui accepte un argument numérique, suivi d'une série d'arguments de chaîne. Il renvoie ensuite la chaîne qui correspond à la position numérique donnée fournie par le premier argument.
Syntaxe
La syntaxe ressemble à ceci :
ELT(N, str1[, str2, str3,...])
Où N
est l'argument numérique, et str1[, str2, str3,…]
représente les arguments de chaîne.
Exemple
Voici un exemple de base :
SELECT ELT(2, 'Red', 'Green', 'Blue');
Résultat :
+--------------------------------+ | ELT(2, 'Red', 'Green', 'Blue') | +--------------------------------+ | Green | +--------------------------------+
Dans ce cas, nous avons utilisé 2
pour renvoyer le deuxième argument de chaîne.
Flotteurs
Si le premier argument est un FLOAT
, MariaDB l'arrondit à l'entier le plus proche :
SELECT
ELT(2.4, 'Red', 'Green', 'Blue') AS "2.4",
ELT(2.5, 'Red', 'Green', 'Blue') AS "2.5";
Résultat :
+-------+------+ | 2.4 | 2.5 | +-------+------+ | Green | Blue | +-------+------+
Spécification d'une position hors plage
La spécification d'une position hors plage entraîne null
étant retourné. Exemples ci-dessous.
Position du zéro
Fournir 0
comme premier argument renvoie null
:
SELECT ELT(0, 'Red', 'Green', 'Blue');
Résultat :
+--------------------------------+ | ELT(0, 'Red', 'Green', 'Blue') | +--------------------------------+ | NULL | +--------------------------------+
Position négative
Fournir une valeur négative comme premier argument renvoie null
:
SELECT ELT(-2, 'Red', 'Green', 'Blue');
Résultat :
+---------------------------------+ | ELT(-2, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Lorsque la position est trop grande
Si le premier argument est un nombre supérieur au nombre total d'arguments de chaîne, ELT()
renvoie nul :
SELECT ELT(20, 'Red', 'Green', 'Blue');
Résultat :
+---------------------------------+ | ELT(20, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Positions non numériques
Si le premier argument n'est pas un nombre, ELT()
renvoie null
:
SELECT ELT('Two', 'Red', 'Green', 'Blue');
Résultat :
+------------------------------------+ | ELT('Two', 'Red', 'Green', 'Blue') | +------------------------------------+ | NULL | +------------------------------------+
Fournir un seul argument de chaîne
Fournir un seul argument de chaîne est valide, bien que dans ce cas, le premier argument devrait être 1
pour éviter d'obtenir null
:
SELECT ELT(1, 'Red');
Résultat :
+---------------+ | ELT(1, 'Red') | +---------------+ | Red | +---------------+
Chaînes nulles
Les arguments de chaîne peuvent être null
sans affecter le résultat des autres :
SELECT ELT(3, 'Red', null, 'Blue');
Résultat :
+-----------------------------+ | ELT(3, 'Red', null, 'Blue') | +-----------------------------+ | Blue | +-----------------------------+
Cependant, en spécifiant un nombre qui correspond au null
l'argument de chaîne renverra évidemment null
:
SELECT ELT(2, 'Red', null, 'Blue');
Résultat :
+-----------------------------+ | ELT(2, 'Red', null, 'Blue') | +-----------------------------+ | NULL | +-----------------------------+
Spécification d'une position nulle
Fournir null
car le premier argument donne null
:
SELECT ELT(null, 'Red');
Résultat :
+------------------+ | ELT(null, 'Red') | +------------------+ | NULL | +------------------+
Argument unique
Fournir un seul argument renvoie une erreur :
SELECT ELT(2);
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'
Argument manquant
Appel de ELT()
sans passer d'arguments entraîne une erreur :
SELECT ELT();
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'