En MariaDB, ELT()
es una función de cadena integrada que acepta un argumento numérico, seguido de una serie de argumentos de cadena. Luego devuelve la cadena que corresponde a la posición numérica proporcionada por el primer argumento.
Sintaxis
La sintaxis es así:
ELT(N, str1[, str2, str3,...])
Donde N
es el argumento numérico, y str1[, str2, str3,…]
representa los argumentos de cadena.
Ejemplo
He aquí un ejemplo básico:
SELECT ELT(2, 'Red', 'Green', 'Blue');
Resultado:
+--------------------------------+ | ELT(2, 'Red', 'Green', 'Blue') | +--------------------------------+ | Green | +--------------------------------+
En este caso, usamos 2
para devolver el segundo argumento de cadena.
Flotadores
Si el primer argumento es un FLOAT
, MariaDB lo redondea al entero más cercano:
SELECT
ELT(2.4, 'Red', 'Green', 'Blue') AS "2.4",
ELT(2.5, 'Red', 'Green', 'Blue') AS "2.5";
Resultado:
+-------+------+ | 2.4 | 2.5 | +-------+------+ | Green | Blue | +-------+------+
Especificar una posición fuera de rango
Especificar una posición fuera de rango da como resultado null
siendo devuelto. Ejemplos a continuación.
Posición de Cero
Proporcionar 0
como primer argumento devuelve null
:
SELECT ELT(0, 'Red', 'Green', 'Blue');
Resultado:
+--------------------------------+ | ELT(0, 'Red', 'Green', 'Blue') | +--------------------------------+ | NULL | +--------------------------------+
Posición negativa
Proporcionar un valor negativo como primer argumento devuelve null
:
SELECT ELT(-2, 'Red', 'Green', 'Blue');
Resultado:
+---------------------------------+ | ELT(-2, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Cuando la posición es demasiado grande
Si el primer argumento es un número mayor que el número total de argumentos de cadena, ELT()
devuelve nulo:
SELECT ELT(20, 'Red', 'Green', 'Blue');
Resultado:
+---------------------------------+ | ELT(20, 'Red', 'Green', 'Blue') | +---------------------------------+ | NULL | +---------------------------------+
Posiciones no numéricas
Si el primer argumento no es un número, ELT()
devuelve null
:
SELECT ELT('Two', 'Red', 'Green', 'Blue');
Resultado:
+------------------------------------+ | ELT('Two', 'Red', 'Green', 'Blue') | +------------------------------------+ | NULL | +------------------------------------+
Proporcionar solo un argumento de cadena
Proporcionar un único argumento de cadena es válido, aunque en este caso el primer argumento debería ser 1
para evitar obtener null
:
SELECT ELT(1, 'Red');
Resultado:
+---------------+ | ELT(1, 'Red') | +---------------+ | Red | +---------------+
Cadenas nulas
Los argumentos de cadena pueden ser null
sin afectar el resultado de los demás:
SELECT ELT(3, 'Red', null, 'Blue');
Resultado:
+-----------------------------+ | ELT(3, 'Red', null, 'Blue') | +-----------------------------+ | Blue | +-----------------------------+
Aunque, especificando un número que coincida con el null
argumento de cadena obviamente devolverá null
:
SELECT ELT(2, 'Red', null, 'Blue');
Resultado:
+-----------------------------+ | ELT(2, 'Red', null, 'Blue') | +-----------------------------+ | NULL | +-----------------------------+
Especificar una posición nula
Proporcionar null
ya que el primer argumento da como resultado null
:
SELECT ELT(null, 'Red');
Resultado:
+------------------+ | ELT(null, 'Red') | +------------------+ | NULL | +------------------+
Argumento único
Proporcionar solo un argumento devuelve un error:
SELECT ELT(2);
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'
Argumento faltante
Llamando a ELT()
sin pasar ningún argumento da como resultado un error:
SELECT ELT();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'