Published on

March 4, 2016

Explorando las funciones de SQL Server: ELT() y FIELD()

Cuando trabajamos con arrays en SQL Server, existen funciones disponibles que pueden ayudar a extraer valores específicos o sus posiciones dentro del array. Dos de estas funciones son ELT() y FIELD(). Vamos a sumergirnos en estas funciones y entender cómo se pueden utilizar.

Función ELT()

La función ELT() en SQL Server acepta múltiples argumentos, siendo el primer argumento el número de posición. Devuelve el valor en la posición especificada dentro del array.

Por ejemplo, considera la siguiente consulta:

SELECT ELT(3, 'SQL', 'ORACLE', 'My SQL', 'SQL SERVER') AS ColumnName;

La consulta anterior devolverá “My SQL” como resultado. Recupera el valor en la tercera posición del conjunto de valores proporcionados.

Si el primer argumento es 0, menor que cero o mayor que el número total de argumentos, la función ELT() devolverá NULL. Por ejemplo:

SELECT ELT(0, 'SQL', 'ORACLE', 'My SQL', 'SQL SERVER') AS ColumnName;
SELECT ELT(31, 'SQL', 'ORACLE', 'My SQL', 'SQL SERVER') AS ColumnName;
SELECT ELT(-5, 'SQL', 'ORACLE', 'My SQL', 'SQL SERVER') AS ColumnName;

Todas las consultas anteriores devolverán NULL como resultado.

Función FIELD()

La función FIELD() en SQL Server es lo opuesto a la función ELT(). Acepta múltiples argumentos y devuelve la posición del valor especificado dentro del array.

Considera la siguiente consulta:

SELECT FIELD('My SQL', 'SQL', 'ORACLE', 'My SQL', 'SQL SERVER') AS ColumnName;

La consulta anterior devolverá 3 como resultado. El valor “My SQL” está disponible en la tercera posición del array.

Si el valor especificado no se encuentra en el array, la función FIELD() devolverá 0. Por ejemplo:

SELECT FIELD('COMPUTER', 'SQL', 'ORACLE', 'My SQL', 'SQL SERVER') AS ColumnName;

El resultado de la consulta anterior será 0.

¿Alguna vez has utilizado estas funciones en tu lógica empresarial? Si es así, nos encantaría conocer tus experiencias y cómo las utilizaste.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.