Manejo especial de NULL en consultas SQL

Artículo 1 Cuatro operaciones aritméticas

Cuando se suman, restan, multiplican y dividen números y NULL, el programa no reconoce NULL, por lo que no sabe cuál es el resultado de la operación, por lo que solo puede devolver NULL al final.

Artículo 2 Operación de comparación

Cuando comparamos números, cadenas o fechas con NULL, el programa no sabe quién es más grande o más pequeño que NULL, o si tienen el mismo valor, por lo que el programa solo puede decirle, no lo sé, y el programa solo Devolverá el resultado de la comparación como datos verdaderos. Entonces, aquí conoces el significado de IS NULL y IS NOT NULL Estos dos predicados son especialmente responsables de tratar con valores NULL.

Artículo 3 grupo por

Podemos entender la lógica de ejecución de group by de esta manera. Por ejemplo, hay tres valores no NULL de a, b y c en la clave de agregación, y luego recorre automáticamente cada fila y compara el valor de cada fila con a, b y c. Si son iguales, entonces como resultado, cuando se encuentra el valor NULL, el programa no puede comparar, por lo que no hay manera, y finalmente NULL se divide en una sola categoría.

Artículo 4 Paso de parámetros

De la misma manera, cuando se pasa NULL como parámetro a funciones aritméticas, funciones de cadena, funciones de fecha y funciones de conversión, el programa no conoce NULL y no sabe cómo manejarlo, por lo que el resultado solo puede devolver NULL .

Cláusula 5 Funciones agregadas

De acuerdo a lo dicho anteriormente, los valores NULL no se pueden comparar, ni pueden participar en los cálculos, por lo que la función de agregación es más inteligente, automáticamente excluirá primero los valores NULL, y solo realizará cálculos sobre los valores restantes , así evitar Es vergonzoso que no pueda usarlo tan pronto como encuentre un valor NULL.
COUNT (una columna) , si esta columna contiene valores NULL, también eliminará primero los datos de valores NULL, de modo que solo se devuelva el número de filas con valores no NULL, por lo que si desea obtener todas las filas, incluido el número de valores NULL, debe usar COUNT(*) .

Artículo 7 ordenar por

La lógica de ejecución de order by también tiene un proceso de comparación. Todos los valores se ordenan comparando sus tamaños. Luego, los valores NULL no se pueden comparar con otros valores. Por lo tanto, al diseñar order by, simplemente seleccione NULL solos o coloque Ponlos todos al principio, o colócalos todos al final, cada RDBMS tiene un diseño diferente, y el orden entre los valores NULL y los valores NULL es aleatorio.

Supongo que te gusta

Origin blog.csdn.net/SingDanceRapBall/article/details/115418193
Recomendado
Clasificación