

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Condición IN
<a name="r_in_condition"></a>

Una condición IN prueba un valor para la membresía en un conjunto de valores o en una subconsulta. 

## Sintaxis
<a name="r_in_condition-synopsis"></a>

```
expression [ NOT ] IN (expr_list | table_subquery)
```

## Argumentos
<a name="r_in_condition-arguments"></a>

 *expresión*   
Expresión temporal, de carácter o numérica que se compara con *expr\$1list (lista\$1de\$1expresiones)* o *table\$1subquery (subconsulta\$1de\$1tabla)* y debe ser compatible con el tipo de datos de esa lista o subconsulta. 

 *expr\$1list (lista\$1de\$1expresiones*   
Una o más expresiones separadas por comas o uno o más conjuntos de expresiones separados por comas entre paréntesis. 

 *table\$1subquery (subconsulta\$1de\$1tabla*   
Una subconsulta que toma el valor de una tabla con una o más filas, pero está limitada a una columna en su lista selecta. 

IN \$1 NOT IN   
IN devuelve true si la expresión es un miembro de la consulta o lista de expresiones. NOT IN devuelve true si la expresión no es un miembro. IN y NOT IN devuelven NULL y no devuelven filas en los siguientes casos: si la *expresión* genera un valor nulo o si no hay valores de *expr\$1list* o *table\$1subquery* que coincidan y al menos una de estas filas de comparación genera un valor nulo. 

## Ejemplos
<a name="r_in_condition-examples"></a>

Las siguientes condiciones son true solo para esos valores enumerados: 

```
qtysold in (2, 4, 5)
date.day in ('Mon', 'Tues')
date.month not in ('Oct', 'Nov', 'Dec')
```

## Optimización para listas IN grandes
<a name="r_in_condition-optimization-for-large-in-lists"></a>

Para optimizar el rendimiento de la consulta, una lista IN que incluye más de 10 valores se evalúa internamente como una matriz escalar. Las listas IN con menos de 10 valores se evalúan como una serie de predicados OR. Esta optimización se admite para los tipos de datos SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION, BOOLEAN, CHAR, VARCHAR, DATE, TIMESTAMP y TIMESTAMPTZ. 

Observe el resultado de EXPLAIN de la consulta para ver el efecto de esta optimización. Por ejemplo: 

```
explain select * from sales
QUERY PLAN
--------------------------------------------------------------------
XN Seq Scan on sales  (cost=0.00..6035.96 rows=86228 width=53)
Filter: (salesid = ANY ('{1,2,3,4,5,6,7,8,9,10,11}'::integer[]))
(2 rows)
```