MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment ELT() fonctionne dans MariaDB

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,...])

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'