Cómo utilizar predicados similares y nulos en sentencias SQL
SQL: 1999 añadió la SIMILAR predicado, el cual ofrece una forma más poderosa de encontrar coincidencias parciales que el COMO predicado ofrece. Con el SIMILAR predicado, se puede comparar una cadena de caracteres en una expresión regular. Por ejemplo, digamos que usted está buscando en la Sistema operativo columna de una tabla de compatibilidad de software para buscar la compatibilidad de Microsoft Windows. Usted podría construir un DÓNDE cláusula como la siguiente:
DONDE OperatingSystem SIMILAR A '(' Ventanas '(3.1 | 95 | 98 | ME | CE | NT | 2000 | XP | Vista | 7 | 8))'
Este predicado recupera todas las filas que contengan cualquiera de los sistemas operativos de Microsoft especificados.
los NULO predicado encuentra todas las filas donde el valor de la columna seleccionada es nulo. Por ejemplo, en una mesa ALIMENTOS comparar el valor nutritivo de los diferentes alimentos, varias filas tienen valores nulos en el Carbohidratos columna. Puede recuperar sus nombres mediante el uso de una declaración como la siguiente:
SELECT (Alimentación) DE FOODSWHERE carbohidratos es NULL -
Esta consulta devuelve los siguientes valores:
Carne de res, magra hamburgerChicken, meatOpossum luz, roastedPork, jamón
Como era de esperar, incluyendo el NO palabra clave invierte el resultado, como en el siguiente ejemplo:
SELECT (Alimentación) DE FOODSWHERE Carbohidratos NO ES NULO -
Esta consulta devuelve todas las filas de la tabla, excepto los cuatro que devuelve la consulta precedentes.
La declaración Los carbohidratos son NULL es no lo mismo que Carbohidratos = NULL. Para ilustrar este punto, se supone que, en la fila actual de la tabla ALIMENTOS, tanto Carbohidratos y Proteína son nulas. A partir de este hecho, se pueden extraer las siguientes conclusiones:
Los carbohidratos son NULL es cierto.
La proteína es NULL es cierto.
Hidratos de carbono es nula y la proteína es NULL es cierto.
Carbohidratos = Proteína es desconocido.
Carbohidratos = NULL es una expresión ilegal.
El uso de la palabra clave NULO en una comparación no tiene sentido porque la respuesta siempre regresa como desconocido.
Por que es Carbohidratos = Proteína definida como desconocido aunque Carbohidratos y Proteína tener la misma (null) valor? Porque NULO simplemente significa " no sé ". Usted no sabe lo que Carbohidratos es, y usted no sabe lo que Proteína es- por lo tanto usted no sabe si esos valores (desconocidas) son los mismos.
Puede ser Carbohidratos es 37, y Proteína es 14, o tal vez Carbohidratos es 93, y Proteína es 93. Si usted no sabe tanto el valor de hidratos de carbono y el valor de proteínas, no se puede decir si los dos son la misma.