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'