SQLite: excepto operadores

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

SQLite: excepto operadores

Este tutorial de SQLite explica cómo usar excepto el operador En SQLite, con sintaxis y ejemplos.

describir

El operador SQLite EXCEPT se usa para devolver todas las filas en la primera declaración SELECT que no fueron devueltas por la segunda declaración SELECT. Cada instrucción SELECT definirá un conjunto de datos. El operador EXCEPTO recuperará todos los registros del primer conjunto de datos y luego eliminará todos los registros del segundo conjunto de datos del resultado.

Excepto consulta

explique: Las consultas EXCEPTO devolverán registros en el área sombreada en azul. Estos son registros que existen en Dataset1, no en Dataset2.

Cada declaración SELECT en una consulta EXCEPT debe tener la misma cantidad de campos en un conjunto de resultados con tipos de datos similares.

sintaxis

La sintaxis del operador EXCEPT en SQLite es:

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
EXCEPT
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

parámetro o parámetro

Expresión La columna o el cálculo que desea comparar entre dos sentencias SELECT. No es necesario que sean los mismos campos en cada instrucción SELECT, pero las columnas correspondientes deben tener tipos de datos similares. tabla La tabla de la que desea recuperar registros. Debe aparecer al menos una tabla en la cláusula FROM. La condición WHERE es opcional. Para seleccionar las condiciones que debe cumplir un registro.

notas

  • Debe haber el mismo número de expresiones en ambas sentencias SELECT.
  • Las columnas correspondientes en cada instrucción SELECT deben tener tipos de datos similares.
  • El operador EXCEPT devuelve todos los registros de la primera sentencia SELECT que no están en la segunda sentencia SELECT.
  • El operador EXCEPT en SQLite es equivalente al operador MINUS en Oracle.

Ejemplo: usar una sola expresión

Veamos un ejemplo del operador EXCEPT en SQLite que devuelve un campo con el mismo tipo de datos.

Por ejemplo:

SELECT department_id
FROM departments
EXCEPT
SELECT department_id
FROM employees;

Este ejemplo de operador EXCEPT devuelve todos los valores de ID de departamento en la tabla de departamentos pero no en la tabla de empleados. Esto significa que si el valor de department_id existe en la tabla de departamentos y también existe en la tabla de empleados, el valor de department_id no aparecerá en los resultados de la consulta EXCEPT.

Ejemplo: uso de varias expresiones

A continuación, veamos un ejemplo de una consulta EXCEPT en SQLite que devuelve varias columnas.

Por ejemplo:

SELECT contact_id, last_name, first_name
FROM contacts
WHERE contact_id >= 74
EXCEPT
SELECT employee_id, last_name, first_name
FROM employees
WHERE first_name="Sarah";

En este ejemplo EXCEPTO, la consulta devolverá registros en la tabla de contactos cuyos valores de contact_id, last_name y first_name no coincidan con los valores de employee_id, last_name y first_name de la tabla de empleados.

Ejemplo: uso de ORDEN POR

Finalmente, veamos cómo usar la cláusula ORDER BY en una consulta EXCEPT en SQLite.

Por ejemplo:

SELECT supplier_id, state
FROM suppliers
WHERE state="Florida"
EXCEPT
SELECT company_id, state
FROM companies
WHERE company_id < 2000
ORDER BY 1 DESC;

En este ejemplo EXCEPT, debido a que los nombres de las columnas difieren entre las dos declaraciones SELECT, es más ventajoso referirse a las columnas en la cláusula ORDER BY por su posición en el conjunto de resultados.En este ejemplo, hemos ordenado los resultados por ID de proveedor/ID de empresa en orden descendente, como en ORDER BY 1 DESC.

Los campos Supplier_id / company_id están en la posición 1 en el conjunto de resultados.