Modo de empleo y no en predicados en sentencias SQL

los EN y NO EN SQL predicados trato con si los valores especificados (tales como OR, WA e ID) están contenidas dentro de un conjunto particular de valores (como los estados de los Estados Unidos).

Es posible, por ejemplo, tienen una tabla que enumera los proveedores de un producto que su empresa compra sobre una base regular. ¿Quieres saber los números de teléfono de los proveedores ubicados en el noroeste del Pacífico. Usted puede encontrar estos números mediante el uso de predicados de comparación, como los que se muestran en el siguiente ejemplo:

Empresa SELECT, PhoneFROM SUPPLIERWHERE Estado = 'O' O Estado = 'WA' O Estado = 'ID' -

También puede utilizar el EN predicado para llevar a cabo la misma tarea, como sigue:

Seleccione la compañía, PhoneFROM SUPPLIERWHERE Estado IN ('OR', 'WA', 'ID') -

Esta formulación es un poco más compacto que el uno usando predicados de comparación y lógica Oregón. También elimina cualquier posible confusión entre la lógica Oregón operador y la abreviatura para el estado de Oregon.

los NO EN versión de este predicado funciona de la misma manera. Digamos que usted tiene ubicaciones en California, Arizona y Nuevo México, y para evitar el pago de impuesto sobre las ventas, desea considerar el uso de proveedores ubicados en cualquier parte excepto en los estados. Utilice la siguiente construcción:

Empresa SELECT, PhoneFROM SUPPLIERWHERE Estado NO EN ('CA', 'AZ', 'NM') -

Usando el EN la palabra clave de esta manera le ahorra un poco de escribir - aunque (francamente), que no es mucho de una ventaja. Usted puede hacer el mismo trabajo mediante el uso de predicados de comparación.

Usted puede tener otra buena razón para utilizar el EN predicado en lugar de predicados de comparación, incluso si se utiliza EN no guarda mucho escribiendo: Sus DBMS probablemente implementa los dos métodos de manera diferente, y uno de los métodos pueden ser significativamente más rápido que el otro en su sistema.

Es posible que desee ejecutar una comparación de rendimiento en las dos formas de expresar la inclusión (o exclusión de) un grupo y luego usar la técnica que produce el resultado más rápido. Un DBMS con un buen optimizador probablemente elegirá el método más eficiente, independientemente de que el predicado se utiliza.

los EN la palabra clave es valioso en otra área, también. Si EN es parte de una subconsulta, la palabra clave le permite extraer información de dos tablas para obtener resultados que no se puede obtener de una sola tabla. He aquí un ejemplo que muestra cómo una subconsulta utiliza la EN palabra clave.

Supongamos que desea mostrar los nombres de todos los clientes que han comprado el producto F-35 en los últimos 30 días. Los nombres de los clientes están en la tabla CLIENTE, y los datos de transacción de venta se encuentra en la tabla de transacciones. Puede utilizar la siguiente consulta:

SELECT Nombre, LastNameFROM CUSTOMERWHERE CustomerID IN (SELECT CustomerIDFROM TRANSACTWHERE ProductID = 'F-35'AND TransDate> = (CurrentDate - 30)) -

El interior SELECT de los nidos de mesa LA TRANSACCIÓN en el exterior SELECT de la tabla CUSTOMER. El interior SELECT encuentra el ID de cliente los números de todos los clientes que compraron el producto F-35 en los últimos 30 días. El exterior SELECT muestra los nombres y apellidos de todos los clientes cuyo ID de cliente se recupera por el interior SELECT.




» » » » Modo de empleo y no en predicados en sentencias SQL