PostgreSQL tiene un operador SOME que se usa para comparar un valor escalar con un conjunto de valores devueltos por una subconsulta.
Syntax: expression operator SOME(subquery)
Se deben seguir las siguientes reglas al usar el operador SOME de PostgreSQL:
- La subconsulta debe devolver exactamente una columna.
- El operador SOME debe estar precedido por uno de los siguientes operadores de comparación =, <=, >, <, > y <>
- El operador SOME devuelve verdadero si algún valor de la subconsulta cumple la condición; de lo contrario, devuelve falso.
Por el bien de este artículo, utilizaremos la base de datos de alquiler de DVD de muestra , que se explica aquí y se puede descargar haciendo clic en este enlace en nuestros ejemplos.
Ejemplo 1:
Aquí consultaremos la duración máxima de una película agrupada por categoría de película de la tabla «película» de nuestra base de datos de muestra.
SELECT title FROM film WHERE length >= SOME( SELECT MAX( length ) FROM film INNER JOIN film_category USING(film_id) GROUP BY category_id );
Producción:
Ejemplo 2:
aquí buscaremos las películas cuya categoría sea Acción (category_id = 1) o Drama (category_id = 7) de la tabla de «categoría» de nuestra base de datos de muestra.
SELECT title, category_id FROM film INNER JOIN film_category USING(film_id) WHERE category_id = SOME( SELECT category_id FROM category WHERE NAME = 'Action' OR NAME = 'Drama' );
Producción:
Publicación traducida automáticamente
Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA