Operador between en PostgreSQL

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;
Operador between en PostgreSQL

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;

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;

Escribir un comentario

Este sitio está protegido por reCAPTCHA y se aplican la política de privacidad y los términos de servicio de Google.