Modo de empleo existe, único, distinto, y se superpone en sentencias sql

Dentro de la cláusula WHERE se encuentra muchas posibilidades para modificar la instrucción SQL. Entre estas posibilidades son el existe, único, distinto, y se superpone predicados. Estos son algunos ejemplos de cómo utilizar estos en las sentencias SQL.

EXISTE

Se puede utilizar el EXISTE predicado en conjunción con una subconsulta para determinar si la subconsulta devuelve ninguna fila. Si retorna la subconsulta al menos una fila, que satisface el resultado EXISTE condición, y se ejecuta la consulta externa. Consideremos el siguiente ejemplo:

Video: Ejemplo simple de SELECT utilizando operadores de comparación

SELECT Nombre, LastNameFROM CUSTOMERWHERE EXISTE (SELECCIONAR DISTINCT CustomerIDFROM SALESWHERE SALES.CustomerID = Cliente.Id del cliente) -

Aquí la tabla de ventas contiene todas las transacciones de ventas de su empresa. La tabla incluye el Identificación del cliente del cliente que hace que cada compra, así como otra información pertinente. La tabla de cliente contiene el nombre y apellido de cada cliente, pero no hay información sobre transacciones específicas.

Video: SQL - Sentencia SELECT con JOIN de tablas

La subconsulta en el ejemplo anterior devuelve una fila para cada cliente que ha realizado al menos una compra. La consulta externa devuelve los nombres y apellidos de los clientes que hicieron las compras que los registros de la tabla VENTAS.

EXISTE es equivalente a una comparación de CONTAR con cero, como la consulta siguiente muestra:

SELECT Nombre, LastNameFROM CUSTOMERWHERE 0 lt; gt; (SELECT COUNT (*) a partir de SALESWHERE SALES.CustomerID = Cliente.Id del cliente) -

Para cada fila de la tabla de ventas que contiene una Identificación del cliente eso es igual a una Identificación del cliente en la tabla CLIENTE, esta declaración muestra el Nombre de pila y Apellido columnas en la tabla cliente. Por cada venta en la tabla de ventas, por lo tanto, el comando muestra el nombre del cliente que realiza la compra.

ÚNICO

Como lo hace con la EXISTE predicado, se utiliza el ÚNICO predicado con una subconsulta. Aunque el EXISTE predicado se evalúa como True sólo si los subconsulta devuelve al menos una fila, la ÚNICO predicado se evalúa como True sólo si no hay dos filas devueltas por la subconsulta son idénticos. En otras palabras, el ÚNICO predicado se evalúa como True sólo si todas las filas que sus subconsulta devuelve son únicos.

Consideremos el siguiente ejemplo:

SELECT Nombre, LastNameFROM CUSTOMERWHERE UNIQUE (SELECT CustomerID DE SALESWHERE SALES.CustomerID = Cliente.Id del cliente) -

Esta instrucción recupera los nombres de todos los nuevos clientes para los que los registros de la tabla VENTAS sólo una venta. Debido a que un valor nulo es un valor desconocido, dos valores nulos no se consideran igual a entre sí- cuando el ÚNICO palabra clave se aplica a una tabla de resultados que contiene sólo dos filas nulas, las ÚNICO predicado se evalúa como True.

DISTINTO

los DISTINTO predicado es similar a la ÚNICO predicado, excepto en la manera en que trata a los nulos. Si todos los valores en una tabla de resultados son ÚNICO, entonces son también DISTINTO de cada uno.

Sin embargo, a diferencia del resultado para el ÚNICO predicado, si el DISTINTO palabra clave se aplica a una tabla de resultados que contiene sólo dos filas nulas, las DISTINTO predicado se evalúa como False. Dos son los valores nulos no considerados diferentes entre sí, mientras que al mismo tiempo se considera que ser único.

Esta extraña situación parece contradictorio, pero hay una razón para ello. En algunas situaciones, es posible que desee para tratar dos valores nulos como diferentes entre sí - en cuyo caso, utilizar la ÚNICO predicado. Cuando se quiere tratar los dos nulos como si fueran la misma, utilice el DISTINTO predicado.

Video: Instrucciones Básicas de SQL en SQL Server (Select, Where, Like)

superpone

Se utiliza el superpone predicado para determinar si dos intervalos de tiempo se superponen entre sí. Este predicado es útil para evitar conflictos de programación. Si los dos intervalos se superponen, el predicado devuelve un valor verdadero. Si no se superpongan, el predicado devuelve un valor falso.

Se puede especificar un intervalo de dos maneras: o bien como un tiempo de inicio y de fin o como hora de inicio y una duración. Aquí hay unos ejemplos:

(TIME `02:55:00`, el intervalo de `1` HORA) se solapa (TIME `03:30:00`, el intervalo de `2` HORA)

Este primer ejemplo devuelve un cierto debido a 3:30 es menos de una hora después de 2:55.

(TIEMPO `09:00:00`, TIEMPO `09:30:00`) se solapa (TIME `09:29:00`, TIEMPO `09:31:00`)

En este ejemplo se devuelve una verdadera porque tiene una superposición de un minuto entre los dos intervalos.

(TIEMPO `09:00:00`, tiempo de `10: 00: 00 `) se solapa (TIEMPO `10: 15: 00` HORA, INTERVALO `3`)

En este ejemplo se devuelve un Falso porque los dos intervalos no se solapan.

(TIEMPO `09:00:00`, TIEMPO `09:30:00`) se solapa (TIME `09:30:00`, TIEMPO `09:35:00`)

En este ejemplo se devuelve un Falso porque a pesar de los dos intervalos son contiguos, que no se superponen.

Artículos Relacionados