Aviso:

Para brindarle información de soporte completa de manera más rápida, el contenido de esta página ha sido traducido al español mediante traducción automática. Para consultar la información de soporte más precisa, consulte la versión en inglés de este contenido.

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:

copy
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:

copy
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:

copy
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:

copy
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:

copy
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:

copy
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:

copy
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:

copy
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:

copy
SELECT * FROM tablename WHERE columnname1 = tablename.columnname2

Ejemplo:

copy
Select MovieName FROM Movies WHERE Actor = Movies.Producer
MovieName
The White River Kid
Duplex
Oppenheimer

UPDATE:

copy
UPDATE Movies SET self_produced = "Yes" WHERE Actor = Movies.Producer

DELETE:

copy
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:

copy
SELECT tablename1.columnname1, tablename2.columnname1 
FROM tablename2 LEFT JOIN tablename1 ON tablename2.columnname1 = tablename1.columnname2 
WHERE tablename1.columnname1 = tablename2.columnname2

Ejemplo:

copy
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:

copy
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 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:

copy
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 presentes en el entorno de desarrollo 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, si y cuando se habilite producción para el proyecto.


Última actualización 2026-03-20 21:51:56 +0530 IST