Utilizamos el operador IN en PostgreSQL en el where para comprobar si el valor de un campo se encuentra en una lista de valores.
Sintaxis
La sintaxis del operador IN es la siguiente:
campo in (valor1, valor2, valorN)
Se puede usar IN junto a una lista de valores escrito por nosotros o tambien puede usar el operador IN para compararlo con el resultado de una instrucción select como la siguiente:
campo in (select campo from tabla)
Puedes combinar el operador IN junto al NOT para indicar que el valor del campo no debe contener algun valor de la lista de valores:
campo not in (select campo from tabla)
Ejemplos
En el siguiente ejemplo puedes utilizamos el operador IN para mostrar solo aquellos empleados que su sueldo este en la lista de valores escrita:
select * from empleados where sueldo in (60000, 70000, 80000);

En este otro ejemplo puedes observar como le indicamos que debe mostrarnos los empleados donde su sueldo este en la lista de valores que devuelve la subconsulta. La subconsulta nos devuelve los sueldos mayores de 50000.
select * from empleados where sueldo in (select sueldo from empleados where sueldo > 50000);

Ahora le vamos a indicar que queremos aquellos empleados donde el valor del campo sueldo no este en la lista de valores:
select * from empleados where sueldo not in (70000, 80000);

Existe una alternativa a usar NOT IN, puedes usar los operadores relacionales <> como se muestra en el siguiente ejemplo:
select * from empleados where nombre <> 'Miguel Troyano' and nombre <> 'Ismael Troyano';

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 sea -- 60000 y 70000 o 80000 select * from empleados where sueldo in (60000, 70000, 80000); -- Mostramos los empleados donde su sueldo sea -- igual que algún valor de la subconsulta select * from empleados where sueldo in (select sueldo from empleados where sueldo > 50000); -- Mostramos los empleados donde su sueldo no sea -- ni 70000 ni 80000 select * from empleados where sueldo not in (70000, 80000); -- Mostramos los empleados donde su nombre no sea -- Miguel e Ismael sin usar NOT IN select * from empleados where nombre <> 'Miguel Troyano' and nombre <> 'Ismael Troyano';