Utilizamos frecuentemente el operador between en PostgreSQL en el where para hacer coincidir el valor de un campo con un rango de valores aunque también veremos las alternativas a este operador haciendo uso de operadores relacionales.
Sintaxis
La sintaxis del operador between es la siguiente:
campo between valor1 and valor2
Tanto valor1 como valor2 pueden ser campos de una tabla o valores escritos a mano por nosotros. El operador between tiene una sintaxis alternativa sin hacer uso de dicho operador, en ambos casos, el resultados será él mismo. Su sintaxis alternativa es la siguiente:
campo >= valor1 and campo <= valor2
Si lo que quieres es comprobar que el valor esté fuera de un rango puedes combinar el operador between con not como en el siguiente ejemplo:
campo not between valor1 and valor2
Ejemplos
En el siguiente ejemplo puedes observar cómo utilizamos el operador between para mostrar solo aquellos empleados que su sueldo este entre 80000 y 90000
select *
from empleados
where sueldo between 80000 and 90000;
Lenguaje del código: JavaScript (javascript)
En este otro ejemplo no usamos el operador between, pero sí su equivalente haciendo uso de operadores relacionales para obtener los mismos resultados:
select *
from empleados
where sueldo >= 80000 and sueldo <= 90000;
Lenguaje del código: JavaScript (javascript)
Ejemplo completo
Copia y pega el siguiente código en tu consola de PostgreSQL y realiza paso a paso leyendo los comentarios:
-- Borramos la tabla si existe
drop table if exists empleados;
-- Creamos la tabla
create table empleados
(
id_empleado numeric(2,0),
id_departamento numeric(2,0),
nombre character varying(50),
puesto character varying(50),
sueldo integer
);
-- Insertamos valores
insert into empleados
values (1,1,'Miguel Troyano','Analista',60000),
(2,1,'Ismael Troyano','Analista',60000),
(3,1,'Jose Troyano','Director',80000),
(4,1,'Pilar Redondo','Directora',80000);
-- Mostramos los empleados donde su sueldo este
-- entre 80000 y 90000 usando between
select *
from empleados
where sueldo between 80000 and 90000;
-- Mostramos los empleados donde su sueldo este
-- entre 80000 y 90000 sin usar between
select *
from empleados
where sueldo >= 80000 and sueldo <= 90000;
Lenguaje del código: JavaScript (javascript)