Prashanth Jayaram

Uso de la función SQL coalesce en el SQL Server

September 16, 2019 by

Este artículo explora la manipulación de cadenas a través la función coalesce en SQL Server.

La manipulación de cadenas es un proceso para poder generar otra forma de datos existentes de una forma que la empresa usa o muestra como resultados en los informes. He escrito antes artículos sobre la función de cadena SQL, incluidas las funciones de cadena SQL para la descripción general de la función Munging de datos y la subcadena de SQL que son acerca de la preparación de datos y las tareas de gestión de datos utilizando las funciones de cadena de SQL Server incorporadas.

El servidor SQL también tiene algunas funciones de caracteres incorporadas que también nos van a permitir manipular y transformar datos. Al mismo tiempo, es importante examinar el conjunto de datos, explorar valores de datos y codificar o decodificar los valores, según sea necesario, para generar datos significativos. Es muy importante saber cómo poder navegar a través de los valores perdidos en nuestros conjuntos de datos, comprender el impacto en los cálculos, consultas, informes y preparación de conjuntos de datos y poder desarrollar técnicas para evitar que los valores nulos arruinen nuestros conjuntos de resultados.

¿Qué es un valor NULO?

Antes de profundizar en cómo navegar por el campo minado potencial de los conjuntos de datos con valores faltantes y evitar pisar un valor Nulo, primero echemos un vistazo rápido a lo que significa NULO.

Según lo definido por Wikipedia

Nulo (o NULL) es un marcador especial usado en el lenguaje de consulta estructurado para indicar que no existe un valor de datos en la base de datos. Introducido por el creador del modelo de base de datos relacional, E. F. Codd, SQL Null sirve para cumplir el requisito de que todos los verdaderos sistemas de gestión de bases de datos relacionales (RDBMS) admitan una representación de “información faltante e información inaplicable”. Codd también introdujo el uso del símbolo omega (ω) griego en minúsculas para representar Nulo en la teoría de bases de datos. En SQL, NULL es una palabra reservada utilizada para identificar este marcador. … Esto no debe confundirse con un valor de 0. Un valor nulo indica la falta de un valor: la falta de un valor no es lo mismo que un valor de cero de la misma manera que la falta de una respuesta no es él Lo mismo que una respuesta de “no”.

Además …

SQL nulo es un estado, no un valor. Este uso es bastante diferente de la mayoría de los lenguajes de programación, donde el valor nulo de una referencia significa que no está apuntando a ningún objeto.

SQL proporciona algunas funciones muy útiles para poder trabajar con sus datos de caracteres en sus consultas SQL que describiremos en detalle

Función SQL Coalesce

Las funciones SQL Coalesce e IsNull se usan para manejar valores nulos. Durante el proceso de evaluación de expresiones, los valores nulos se reemplazan con el valor definido por el usuario.

La función SQL Coalesce evalúa todos los argumentos en orden y siempre devuelve el primer valor no nulo de la lista de argumentos definidos.

Sintaxis

COALESCE ( expresión [ 1…n ] )

Propiedades de la función SQL coalesce

  1. Las expresiones deben ser del mismo tipo de datos
  2. Puede contener múltiples expresiones
  3. La función SQL Coalesce es un atajo sintáctico para la expresión Case
  4. Siempre va a evaluar primero un entero, un entero seguido de una expresión de caracteres produce un entero como salida.

Ejemplos:


SQL Coalesce function

SQL Coalesce en una operación de concatenación de cadenas

En el siguiente ejemplo, vamos a concatenar algunos valores. Pero, de nuevo, es solo una revisión para informarle lo que sucede cuando tenemos un valor NULO. Entonces, sigamos adelante y vayamos a ejecutar el T-SQL. Y así podemos ver que encontramos un valor NULO al procesar la operación de concatenación de cadenas. El servidor SQL simplemente devuelve un NULO cada vez que encuentra un valor NULO. El resultado no es una combinación del nombre, nulo y apellido.

SQL Coalesce in a string concatenation operation

Manejemos los valores nulos usando la función denominada SQL COALESCE. Esta función permite poder manejar el comportamiento del valor NULO. Por lo tanto, en este caso, use la función SQL coalesce para poder reemplazar cualquier valor NULO de segundo nombre con un valor ‘‘ (Char (13) -space). La instrucción SQL aún debe poder concatenar los tres nombres, pero no se mostrarán valores nulos en la salida. Ahora vemos que el nombre completo se muestra con un espacio en el medio, para valores NULO. De esta manera, es posible poder personalizar eficientemente los valores de columna.


Función coalesce SQL y pivote

El siguiente ejemplo devuelve los valores que no son nulos concatenados de la tabla “estado”. En algunos casos, es posible que se deban asignar los valores estáticos concatenados a una variable. En tal caso, los valores de la columna de la ciudad se analizan utilizando la función Coalesce SQL y se concatenan dentro de una comilla simple para poder preparar una cadena de valores. La salida se manipula posteriormente para poder eliminar el último carácter para obtener una cadena válida de valor de entrada.

Salida:

Función escalar definida por el usuario y función coalesce SQL

Se crea una función definida por el usuario para poder devolver una cadena específica a la entrada proporcionada y luego la salida se agrupa a través de una cláusula de agrupación. En el siguiente ejemplo, la función de valor escalar nos devuelve los valores de cadena concatenados separados por “,” para una entrada específica de “Ciudad”. En el siguiente ejemplo se devuelve una salida donde la columna de estado está agrupada y sus valores de ciudades están concatenados y separados por un delimitador ‘,’ (coma). También es posible usar STRING_AGG si está utilizando SQL Server 2017. Puede también es posible consultar más información con el artículo Funciones principales de cadena SQL en SQL Server 2017

Así es como llamamos al nombre de la función dbo.tfn_CoalesceConcat con la instrucción select.

La salida resulta ser una secuencia concatenada de valores separados por un delimitador “,”


Validación de datos mediante la función coalesce SQL

En el siguiente ejemplo, se encontrarán los contactos de emergencia de los empleados. Por lo general, en cualquier organización, los números de teléfono del empleado se organizan y enumeran en las columnas de trabajo, casa, teléfono celular.

Veamos cómo encontrar a los empleados donde no se mencionan contactos de emergencia o, en otras palabras, saquemos todos los detalles del empleado con contactos de emergencia.

En el siguiente ejemplo, tb_EmergencyContact contiene a todos los números de contacto de todos los empleados.

La función SQL Coalesce se usa para poder seleccionar las columnas teléfono de casa, teléfono de trabajo y teléfono celular. En el caso de valores NULO, el valor “NA” (no aplicable), se devuelve una cadena literal.


Coalesce SQL y columnas calculadas

El siguiente ejemplo va a utilizar SQL COALESCE para comparar los valores de las columnas de salario por hora, salario y comisión y devolver solo el valor no nulo encontrado en las columnas.

La siguiente consulta T-SQL se utiliza para enumerar el salario total pagado a todos los empleados


Ahora, vamos a ver un ejemplo para poder crear una columna calculada con la función SQL Coalesce en SQL Server

De manera general, es posible que necesitemos usar la expresión en las tablas. En las tablas, se requiere poder calcular los valores ya que a menudo se calculan usando varias columnas existentes y con pocos valores escalares de la tabla. Además, estas columnas dependen de una o más columnas. De esta forma, podemos crear una columna calculada usando la función SQL Coalesce para que los valores nulos se manejen de manera eficiente.

Ahora, es posible ver que una simple instrucción SELECT muestra los resultados calculados previamente.

SQL COALESCE y expresión CASE

La función SQL COALESCE se puede representar sintácticamente utilizando la expresión CASE. Como por ejemplo, como sabemos, la función Coalesce devuelve los primeros valores no nulos.

SELECT COALESCE (expresión1, expresión2, expresión3) FROM TABLENAME;

La declaración SQL de la fusión anterior puede reescribirse usando la declaración CASE.

La consulta devuelve el mismo resultado que el que usa la función COALESCE.

Conclusión

En este artículo, discutimos algunos consejos y trucos para poder mostrar el uso de la función SQL Coalesce para consultar efectivamente con T-SQL. También discutimos varios casos de uso de la función SQL Coalesce. También es posible optimizar la salida creando una columna calculada.

Espero que este artículo sobre la función Coalesce en SQL Server haya sido entretenido. Siéntase libre de realizar cualquier pregunta en los comentarios a continuación.


Prashanth Jayaram
Funciones

Acerca de Prashanth Jayaram

Soy un experto en tecnologías con más de 11 años de experiencia en tecnologías de base de datos. Soy Microsoft Certified Professional y tengo el respaldo de una Licenciatura en Master en aplicaciones de computadoras. Mi especialidad es el diseño y la implementación de soluciones de alta disponibilidad y la migración de bases de datos multiplataforma. Las tecnologías en las que trabajo actualmente son SQL Server, PowerShell, Oracle y MongoDB. Ver todas las publicaciones de Prashanth Jayaram

168 Views