sirve que para mysql coalesce

que - Cómo usar Coalesce en MySQL



coalesce sql (4)

  1. ¿Cómo es que vi consultas que devuelven múltiples valores? ¿No es solo el primer valor no nulo que se devuelve?

    Sí, solo se devuelve el primer valor no NULL. Debe estar equivocado acerca de las consultas que ha visto donde pensó que ese no era el caso: si pudiera mostrarnos un ejemplo, podríamos ayudar a aclarar el malentendido.

  2. ¿Y cómo decide qué columna basar? coalesce (columna 1, columna 2)? ¿qué pasa si la primera columna es nula y la otra columna no es nula?

    En orden de sus argumentos: en este ejemplo, column1 antes de column2 .

  3. O si estoy equivocado o mi sintaxis es incorrecta, ¿cómo puedo escribirlo correctamente?

    Tu no estas equivocado.

  4. ¿Puede alguien proporcionar un ejemplo muy bueno y sencillo sobre cómo usarlo?

    Tomado de la documentación :

    mysql> SELECT COALESCE(NULL,1); -> 1 mysql> SELECT COALESCE(NULL,NULL,NULL); -> NULL

  5. Y cuando es conveniente usarlo.

    Es conveniente utilizarlo cuando se desee seleccionar el primer valor que no sea NULL de una lista.

Un poco de ayuda aquí. Realmente no entiendo cómo usar esta fusión en MySQL

He leído todas las páginas en el resultado de la página 1 de how to use coalsece en el resultado de Google.

Sé que su significado es que devuelve el primer valor no nulo que encuentra y, de lo contrario, nulo.

Pero sigue siendo vago para mí.

  1. ¿Cómo es que vi consultas que devuelven múltiples valores? ¿No es solo el primer valor no nulo que se devuelve?
  2. ¿Y cómo decide qué columna basar? coalesce(column1,column2) ? ¿qué pasa si la primera columna es nula y la otra columna no es nula?
  3. O si me equivoco o mi sintaxis es incorrecta, ¿cómo puedo escribirlo correctamente?
  4. ¿Puede alguien proporcionar un ejemplo muy bueno y sencillo sobre cómo usarlo?
  5. Y cuando es conveniente usarlo.

COALESCE devolverá la primera columna o valor no nulo.

Ejemplo de uso:

SELECT COALESCE(my_column, my_other_column, ''default'') as username FROM my_table;

Resultados de ejemplo:

my_column my_other_column results null null ''default'' null 0 ''0'' null ''jimmy'' ''jimmy'' ''bob'' ''jimmy'' ''bob''


Este es un ejemplo perfecto de Coalesce si cambiará los campos / columnas nulos a lo que quiere que sean en el caso de nulo a 0 y 1. Copie esto en un editor de mysql que se verá mucho mejor

Seleccione "Columna1 (No quiero tocar)", coalesce (columna2 (Que desea establecer en 0 si es nulo), 0) como columna2 (asígnele el mismo nombre que tenía, por ejemplo, "columna2"), coalesce (columna3 (En lugar de nulo establecido en 1), 1) como column3 (asígnele el mismo nombre que tenía, por ejemplo, "column3")
de "MydataTable" Donde ''somedates'' en (''2015-04-10'', ''2015-04-03'', ''2015-03-27'', ''2015-04-17'') e id = 10 ordenados por ''somedates '';


Personalmente uso coalesce cuando quiero encontrar la primera columna que no está en blanco en una fila de una lista de prioridades.

Digamos, por ejemplo, que quiero obtener un número de teléfono de una mesa de clientes y que tienen 3 columnas para los números de teléfono llamados móvil, hogar y trabajo, pero solo quiero recuperar el primer número que no esté en blanco.

En este caso, tengo la prioridad de móvil, luego a casa y luego trabajo.

TABLE STRUCTURE -------------------------------------------- | id | customername | mobile | home | work | -------------------------------------------- | 1 | Joe | 123 | 456 | 789 | -------------------------------------------- | 2 | Jane | | 654 | 987 | -------------------------------------------- | 3 | John | | | 321 | -------------------------------------------- SELECT id, customername, COALESCE(mobile, home, work) AS phone FROM customers RESULT ------------------------------ | id | customername | phone | ------------------------------ | 1 | Joe | 123 | ------------------------------ | 2 | Jane | 654 | ------------------------------ | 3 | John | 321 | ------------------------------