---
title: "Cláusula WHERE"
url: https://docs.catalyst.zoho.com/es/cloud-scale/help/zcql/where/
description: "ZCQL es el lenguaje de consulta propio de Catalyst, inspirado en lenguajes de consulta conocidos, que puedes utilizar para consultar la base de datos de tu aplicación de manera eficiente."
last_updated: 2026-03-20T16:21:56Z
service: Cloud Scale
type: general
---
# Cláusula WHERE
### Introducción
La cláusula `WHERE` se utiliza para filtrar los registros de datos en función de una condición especificada o un conjunto de condiciones en las consultas de búsqueda. Cuando se usa la condición WHERE en una consulta, los registros de datos se verifican según las condiciones especificadas y los comandos se ejecutan solo en los registros que satisfacen las condiciones.
Por ejemplo, la sintaxis para usar la condición `WHERE` en una sentencia `SELECT` es:
```sql
SELECT column_name(s) FROM base_table_name WHERE condition
```
La condición `WHERE` también se puede usar con las sentencias `UPDATE` y `DELETE`.
### Operadores soportados por la cláusula WHERE
Puedes usar los siguientes operadores en las condiciones `WHERE` en consultas ZCQL:
| Operadores |
Descripción |
| = |
Igual a |
| IS |
TRUE si el operando es igual al valor |
| IS NULL |
TRUE si el operando es un valor nulo |
| IS NOT NULL |
TRUE si el operando no es un valor nulo |
| != |
No igual a |
| LIKE |
TRUE si el operando coincide con un patrón |
| NOT LIKE |
TRUE si el operando no coincide con un patrón |
| BETWEEN |
TRUE si el valor del operando está entre los valores de inicio y fin |
| IN |
TRUE si el operando es igual a una lista de expresiones |
| NOT IN |
TRUE si el operando no es igual a una lista de expresiones |
| > |
Mayor que |
| >= |
Mayor o igual que |
| < |
Menor que |
| <= |
Menor o igual que |
**Ejemplo**:
Para ver una lista de las películas que se proyectan en días distintos al 13 de julio de 2018 de la tabla Movies, puedes especificar la condición de fecha en la consulta usando la cláusula `WHERE` de la siguiente manera:
```sql
SELECT MovieName, ShowDate FROM Movies WHERE ShowDate IS '2018-07-14'
```
Esto generará la siguiente salida:
| MovieName |
ShowDate |
| Hotel Transylvania 3: Summer Vacation |
2018-07-14 |
| Skyscraper |
2018-07-14 |
### Múltiples condiciones WHERE
Puedes especificar un máximo de cinco condiciones WHERE en una sola consulta. Cuando se especifican múltiples condiciones `WHERE`, puedes usar un operador `AND` o `OR` para vincular las condiciones entre sí. Las funcionalidades de los operadores `AND` y `OR` son:
* `AND`: Produce solo los registros de datos que satisfacen ambas condiciones asociadas con el operador `AND`.
* `OR`: Produce los registros de datos que satisfacen cualquiera de las condiciones asociadas con el operador `OR`.
Por ejemplo, la sintaxis para usar múltiples condiciones `WHERE` en una sentencia `SELECT` es:
```sql
SELECT column_name(s)
FROM base_table_name
WHERE condition_1 AND|OR condition_2.. AND|OR condition_5
```
**Ejemplo**:
Para ver una lista de las fechas y horarios de proyección de la tabla _Movies_ para las películas 'The First Purge' o 'Skyscraper' que se proyectan el 14 de julio, ejecuta la siguiente consulta:
```sql
SELECT MovieName, ShowDate, ShowTime FROM Movies WHERE MovieName='The First Purge' OR MovieName='Skyscraper' AND ShowDate='2018-07-14'
```
Solo hay un registro que coincide con las condiciones anteriores. Por lo tanto, la consulta generará el siguiente resultado:
| MovieName |
ShowDate |
ShowTime |
| Skyscraper |
2018-07-14 |
21:30:00 |
### Sentencia LIKE
La condición `LIKE` te permite indicar registros que contienen un criterio específico y seleccionar todos los registros que coincidan con esa condición. Por ejemplo, puedes indicar un alfabeto específico con el que deben comenzar los registros que necesitas obtener, o un valor particular que deben contener.
Por ejemplo, la sintaxis de la condición `LIKE` en una sentencia `UPDATE` es la siguiente:
```sql
UPDATE base_table_name
SET column_name(s)=value(s)
WHERE condition
LIKE *value*
```
El '\*' se puede usar antes o después, o tanto antes como después, del valor que especifiques. El '\*' es esencialmente un marcador de posición que indica que cualquier valor puede reemplazarse en su lugar.
Por ejemplo, para indicar que se deben obtener todos los registros de una tabla que comienzan con la letra 'A', puedes ingresar el valor de `LIKE` como 'A\*'. Esto especifica que después de la letra A, cualquier valor puede seguir.
**Ejemplo:**
Para actualizar los registros donde los nombres de películas comienzan con la letra 'S' en la tabla _Movies_, ejecuta la siguiente consulta:
```sql
UPDATE Movies SET ShowDate='2018-07-17' WHERE MovieName like 'S*'
```
Esto actualizará el siguiente registro y establecerá el valor:
| MovieID |
MovieName |
ShowDate |
ShowTime |
TheaterID |
| 2059 |
Skyscraper |
2018-07-17 |
21:30:00 |
053 |
También se permite el uso de sintaxis de comodines y símbolos como **\*** y **?** en las sentencias ZCQL definidas usando la sentencia de condición `LIKE`.
| Sintaxis de comodín |
Definición |
| `\*` |
Coincide con cero o más caracteres |
| `?` |
Coincide con exactamente un carácter |
### Sentencia BETWEEN
La condición `BETWEEN` te permite filtrar registros indicando los valores de inicio y fin en una columna particular que contiene valores numéricos. Por ejemplo, puedes seleccionar todos los registros donde los valores de porcentaje estén entre 70 y 80.
Por ejemplo, la sintaxis de una condición `BETWEEN` en una sentencia `DELETE` es la siguiente:
```sql
DELETE FROM base_table_name
WHERE condition
BETWEEN Value1 AND Value2
```
> **Nota:** Solo puedes usar la sentencia `BETWEEN` para seleccionar valores 'Int' o 'Double' en la tabla del Data Store de Catalyst. No podrás usarla para ningún otro tipo de dato.
**Ejemplo:**
Para eliminar los registros donde el valor de MovieID está entre 2056 y 2059 en la tabla _Movies_, ejecuta la siguiente consulta:
```sql
DELETE FROM Movies WHERE MovieID BETWEEN 2056 AND 2059
```
Los siguientes registros de la tabla se eliminarán:
| MovieID |
MovieName |
ShowDate |
ShowTime |
TheaterID |
| 2057 |
Ant-Man and the Wasp |
2018-07-13 |
14:20:00 |
052 |
| 2058 |
Hotel Transylvania 3: Summer Vacation |
2018-07-14 |
17:00:00 |
052 |
> **Nota:** Para producir el resultado exactamente opuesto, puedes usar la sentencia `NOT BETWEEN`. La misma sintaxis y condiciones de una sentencia `BETWEEN` se aplican a las sentencias `NOT BETWEEN`.
### Comparación de columna a columna
Puedes comparar dos columnas de la misma tabla o de tablas diferentes **haciendo referencia a los nombres de las columnas con sus respectivos nombres de tabla** en el lado izquierdo y derecho de la comparación. El resultado de la comparación devolverá las filas que contengan el mismo valor para column1 y column2 en la tabla.
Esta compatibilidad de comparación en la cláusula `WHERE` es aplicable a las consultas `SELECT`, `UPDATE` y `DELETE`.
Puedes comparar dos columnas cualesquiera que sean de los siguientes tipos de datos: `BOOLEAN`, `DOUBLE`, `DATE`, `DATETIME`, `ENCRYPTED`, `VARCHAR`, `TEXT`, `INT` y `BIGINT`.
> **Nota:** No puedes comparar columnas de dos tipos de datos diferentes.
**SELECT:**
La sintaxis general para la comparación de columnas dentro de la misma tabla es la siguiente:
```sql
SELECT * FROM tablename WHERE columnname1 = tablename.columnname2
```
**Ejemplo**:
```sql
Select MovieName FROM Movies WHERE Actor = Movies.Producer
```
| MovieName |
| The White River Kid |
| Duplex |
| Oppenheimer |
**UPDATE:**
```sql
UPDATE Movies SET self_produced = "Yes" WHERE Actor = Movies.Producer
```
**DELETE:**
```sql
DELETE FROM Movies WHERE Actor = Movies.Producer
```
#### Comparación de columnas en tablas diferentes
También puedes comparar columnas de dos tablas diferentes como se muestra en la siguiente sintaxis:
```sql
SELECT tablename1.columnname1, tablename2.columnname1
FROM tablename2 LEFT JOIN tablename1 ON tablename2.columnname1 = tablename1.columnname2
WHERE tablename1.columnname1 = tablename2.columnname2
```
**Ejemplo**:
```sql
SELECT Movies.name, Theatres.city from Theatres left join Movies on Theatres.ROWID = Movies.theatreID where Movies.distributionCity = theatre.city
```
| Name |
CIty |
| Dark Knight Rises |
Los Angeles |
| Titanic |
New York |
De manera similar, puedes comparar columnas pertenecientes a dos tablas diferentes al ejecutar las consultas `UPDATE` y `DELETE`.
### Subconsultas en la cláusula WHERE
Una subconsulta es una consulta que se escribe dentro de otra sentencia de consulta. Catalyst te permite ejecutar subconsultas simples individuales con la cláusula `WHERE`. Puedes escribir subconsultas con la cláusula `WHERE` en las consultas `SELECT`, `UPDATE` y `DELETE`.
La sintaxis de una subconsulta con la cláusula `WHERE` se muestra a continuación:
```sql
SELECT column_name FROM table_name WHERE column_name operator (SELECT column_name FROM table_name)
```
**Base de datos de ejemplo**
Los detalles de empleados de Zylker Technologies se mantienen en el [Data Store](https://docs.catalyst.zoho.com/es/cloud-scale/help/data-store/introduction/) en la tabla *Zylker_Employee_DB*. La tabla contiene las siguientes columnas y filas:
| ID |
Name |
Department |
Salary |
| ZT-001 |
Amelia Burrows |
Product Management |
15000 |
| ZT-2001 |
Bruce Wayne |
Sr. Management |
85000 |
| ZT-239 |
Clark Kane |
Media Relations |
85000 |
| ZT-4289 |
Michelle Mascarenhas |
Finance |
89000 |
A continuación se muestra un ejemplo de sentencia de subconsulta para listar los salarios y los nombres de los empleados que ganan más que el empleado con el salario mínimo:
```sql
SELECT Name, Salary FROM Zylker_Employee_DB WHERE Salary > (SELECT MIN (Salary) FROM Zylker_Employee_DB)
```
| Zylker_Employee_DB.Salary |
Zylker_Employee_DB.Name |
| 15000 |
Amelia Burrows |
| 85000 |
Bruce Wayne |
| 89000 |
Michelle Mascarenhas |
> **Nota:**
* Esta funcionalidad solo está disponible en **ZCQL V2**.
* A partir del **1 de diciembre de 2024**, todos tus proyectos actuales en todas tus [organizaciones](https://docs.catalyst.zoho.com/es/getting-started/catalyst-organizations/) presentes en el [entorno de desarrollo](https://docs.catalyst.zoho.com/es/deployment-and-billing/environments/development-environment/) se mapearán automáticamente al **ZCQL V2 Parser**.
* A partir del **1 de abril de 2025**, todos los proyectos presentes en todas las *organizaciones* que ya hayan sido mapeados al **ZCQL V2 Parser** en el *entorno de desarrollo* se mapearán automáticamente al **ZCQL V2 Parser** en el [entorno de producción](https://docs.catalyst.zoho.com/es/deployment-and-billing/environments/production-environment/), si y cuando se habilite producción para el proyecto.