--- title: "Sintaxis y excepciones de ZCQL V2" url: https://docs.catalyst.zoho.com/es/cloud-scale/help/zcql/syntax-exceptions/ 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 --- # Sintaxis y excepciones de ZCQL V2 Catalyst ha añadido varias mejoras y actualizaciones de sintaxis para ayudarte a escribir consultas ZCQL de manera más efectiva. Estas nuevas actualizaciones de sintaxis proporcionarán funcionalidades adicionales y te permitirán realizar operaciones relacionadas con datos en el Data Store con mucha mayor facilidad. > **Nota:** * Para usar estas mejoras de funcionalidad, necesitarás migrar a la versión **V2**. Las actualizaciones de sintaxis no serán aplicables si las implementas mientras ejecutas comandos ZCQL en **V1**. * 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. Las siguientes excepciones y particularidades de sintaxis deben tenerse en cuenta al ejecutar una consulta ZCQL: 1. La función ZCQL [`AVG ()`](https://docs.catalyst.zoho.com/es/cloud-scale/help/zcql/zcql-functions/#avg) se puede aplicar a los siguientes tipos de datos: - **Date** - **DateTime** - **Boolean** 2. Cuando indicas un valor en tu sentencia ZCQL, indica el valor entre comillas simples. Por ejemplo, si necesitas obtener un nombre particular de una base de datos de empleados, escribirás el comando de la siguiente manera: ```sql SELECT Name FROM Employee_DB WHERE name = 'Amelia' ``` 3. Si una columna es de tipo de dato Boolean: - No se permiten valores de cadena. - El tipo de dato Boolean solo admitirá los siguientes valores: - FALSE - TRUE - NULL 4. Si estás usando un **tipo de dato Encrypted**, las siguientes funciones de ZCQL no se pueden usar en esa columna: - `AVG()` - `SUM()` - `MAX()` - `MIN()` 5. Se han añadido [excepciones apropiadas](https://docs.catalyst.zoho.com/es/cloud-scale/help/zcql/syntax-exceptions/#list-of-zcql-exceptions) cuando usas operadores comparativos como `Less Than`, `Greater Than`, `Less Than or Equal` y `Greater Than or Equal` en tipos de datos **Encrypted Text** y **Boolean**. Estas excepciones no son aplicables para los operadores `Equal` y `Not Equal`. 6. Las subconsultas ahora son compatibles en las sentencias de la cláusula `WHERE`. Puedes obtener más información sobre ellas en este [documento de ayuda](https://docs.catalyst.zoho.com/es/cloud-scale/help/zcql/where/#subqueries-in-where-clause). 7. La cláusula [`ORDER BY`](https://docs.catalyst.zoho.com/es/cloud-scale/help/zcql/groupby-orderby/#order-by-statement) ahora admite el uso de [funciones de ZCQL](https://docs.catalyst.zoho.com/es/cloud-scale/help/zcql/zcql-functions/). 8. En todas las columnas donde uses la cláusula `ORDER BY`, ahora se puede aplicar la funcionalidad `ASC` y `DESC`. También puedes aplicar `ASC` y `DESC` para columnas individuales. **Base de datos de ejemplo**: Considera la siguiente base de datos - **ZylkerEmployeeCompensation**
Name Salary Reimbursement
Michelle Mascarenhas 90000 10000
Bruce Kyle 3000000 45000
Clark Kane 3300 1500
Judith Bridges 4700 300
Devon Dreymond 80000 2300
Ashley Kim 6000 200
Ejecuta el siguiente comando para listar la tabla ```sql SELECT Salary, Reimbursement FROM ZylkerEmployeeCompensation ORDER BY Salary ASC, Reimbursement DESC ``` **Salida:**
ZylkerEmployeeCompensation.Salary ZylkerEmployeeCompensation.Reimbursement
3300 45000
4700 10000
6000 2300
80000 1500
90000 300
3000000 200
9. Se activarán [excepciones apropiadas](https://docs.catalyst.zoho.com/es/cloud-scale/help/zcql/syntax-exceptions/#list-of-zcql-exceptions) en los siguientes casos: - Si se ha excedido el valor máximo/mínimo permitido en el tipo de dato **Integer**. - Si la longitud de caracteres es mayor que el valor establecido por ti en el tipo de dato **VarChar**. - Si el valor está fuera del rango soportado en el tipo de dato **BIGINT**. 10. Puedes escribir **cuatro** cláusulas [`JOIN`](https://docs.catalyst.zoho.com/es/cloud-scale/help/zcql/joins/) en una sola sentencia ZCQL. Sin embargo, solo puedes escribir **una** condición `JOIN` para cada cláusula de join. 11. La funcionalidad de **alias de tabla** ahora es compatible en ZCQL. Ahora puedes invocar la funcionalidad de alias en ZCQL usando el comando `AS` de ZCQL. Con este comando puedes referirte a tu tabla con otros nombres. **Base de datos de ejemplo**: Considera las siguientes bases de datos: **Tabla 1: ZylkerEmployeeCompensation**
Name Salary Reimbursement
Michelle Mascarenhas 90000 10000
Bruce Kyle 3000000 45000
Clark Kane 3300 1500
Judith Bridges 4700 300
Devon Dreymond 80000 2300
Ashley Kim 6000 200
**Tabla 2: ZylkerEmployeeRelation**
Manager Member
Michelle Mascarenhas Bruce Kyle
Michelle Mascarenhas Clark Kane
Judith Bridges Michelle Mascarenhas
Ejecuta el siguiente comando para listar la tabla ```sql SELECT Managers.Name, Members.Name FROM ZylkerEmployeeCompensation AS Managers INNER JOIN ZylkerEmployeeRelation AS asso ON Managers.ROWID = asso.Manager INNER JOIN ZylkerEmployeeCompensation AS Members ON Members.ROWID = asso.Member ``` **Salida:**
Manager.Name Member.Name
Michelle Mascarenhas Bruce Kyle
Michelle Mascarenhas Clark Kane
Judith Bridges Michelle Mascarenhas
> **Nota:** La operación de alias de tabla solo es compatible con sentencias `SELECT`. 12. Puedes verificar si tienes un valor NULL usando el operador **IS/IS NOT**. La compatibilidad del operador **IS/IS NOT** solo está disponible para valores NULL. 13. Al escribir sentencias [`GROUP BY`](https://docs.catalyst.zoho.com/es/cloud-scale/help/zcql/groupby-orderby/) con [`Binaryof()`](https://docs.catalyst.zoho.com/es/cloud-scale/help/zcql/groupby-orderby/#binaryof-function), se deben recordar las siguientes reglas de ZCQL: - La funcionalidad Binaryof() solo se puede usar en sentencias GROUP BY. - Binaryof() solo se puede usar en columnas con tipo de dato VarChar o Text. - Cuando se usa Binaryof() en una sentencia GROUP BY, los valores devueltos distinguen entre mayúsculas y minúsculas. Por ejemplo, considera que tienes los valores 'AMELIA', 'amelia', 'Burrows' y 'burrows' en una columna llamada Name, en una tabla llamada Zylker_EMP. Si usas el siguiente comando: ```sql Select Name from Zylker_EMP group by binaryof(Name) ``` El resultado podría ser cualquiera de los siguientes: - AMELIA - amelia - burrows - Burrows 14. Los nombres de columnas ahora pueden contener valores numéricos. Puedes indicar dichos nombres de columna en la consulta usando la puntuación de acento grave (**`**). Por ejemplo, una consulta `SELECT` en una tabla llamada Numbers con una columna llamada 01 se puede escribir de la siguiente manera: ```sql SELECT `01` FROM Numbers ``` ### Lista de excepciones de ZCQL La siguiente es una lista de excepciones comunes y sentencias de consulta de ejemplo que pueden activar estas excepciones. Asegúrate de revisar la lista y seguir estrictamente la sintaxis de ZCQL para evitar activar estas excepciones.
Tipo de dato Caso Consulta ZCQL de ejemplo Excepción activada
Encrypted Text Ciertos operadores no son compatibles SELECT * FROM temp WHERE enc > 'temsp' `Operator > is not supported for ENCRYPTED TEXT` La misma excepción se aplica, pero el mensaje de excepción se modificará en consecuencia si usas estos operadores **<**, **<=**, **>=** en la sentencia ZCQL
`LIKE` no es compatible SELECT * FROM temp WHERE enc LIKE '*temsp' `Operator LIKE is not supported for ENCRYPTED TEXT` La misma excepción se aplica, pero el mensaje de excepción se modificará en consecuencia si usas **NOT LIKE** en la sentencia ZCQL
`BETWEEN` no es compatible SELECT * FROM temp WHERE enc BETWEEN 'one' AND 'ten' `Operator BETWEEN is not supported for ENCRYPTED TEXT` La misma excepción se aplica, pero el mensaje de excepción se modificará en consecuencia si usas **NOT BETWEEN** en la sentencia ZCQL
`IN` no es compatible SELECT * FROM temp WHERE enc IN ('one','three') `Operator IN is not supported for ENCRYPTED TEXT` La misma excepción se aplica si usas **NOT IN** en tu consulta, pero el mensaje de excepción se modificará en consecuencia
Las funciones de ZCQL no son compatibles SELECT AVG(enc) FROM temp `AVG() function is not supported for ENCRYPTED_TEXT` Las [funciones de ZCQL](https://docs.catalyst.zoho.com/es/cloud-scale/help/zcql/zcql-functions/) no son compatibles con **Encrypted Text**.
Boolean Ciertos operadores no son compatibles SELECT * FROM temp WHERE bools > FALSE `Operator > is not supported for BOOLEAN` La misma excepción se aplica, pero el mensaje de excepción se modificará en consecuencia si usas estos operadores **<**, **<=**, **>=** en la sentencia ZCQL
`LIKE` no es compatible SELECT * FROM temp WHERE bools LIKE FALSE `Operator LIKE is not supported for BOOLEAN` La misma excepción se aplica si usas **NOT LIKE** en tu consulta, pero el mensaje de excepción se modificará en consecuencia
`BETWEEN` no es compatible SELECT * FROM temp WHERE bools BETWEEN TRUE and FALSE `Operator BETWEEN is not supported for BOOLEAN` La misma excepción se aplica si usas **NOT BETWEEN** en tu consulta, pero el mensaje de excepción se modificará en consecuencia
`IN` no es compatible SELECT * FROM temp WHERE bools IN (TRUE, FALSE) `Operator IN is not supported for BOOLEAN` La misma excepción se aplica si usas **NOT IN** en tu consulta, pero el mensaje de excepción se modificará en consecuencia
VarChar Longitud máxima excedida INSERT INTO temp (Fishes) value ('salmon') `'salmon' data too long for column 'Fishes'` La columna `Fishes` fue creada como **VarChar** y el **MaxLength** se estableció en `5`. En esta sentencia, `'Salmon'` excede el **MaxLength**
Integer Valor máximo excedido INSERT INTO temp (numbers) VALUE (546895326908) `For column 'ints' INT value should be between -9999999999 and 9999999999` La columna numbers fue creada como **INT**. El valor del tipo de dato **INT** debe estar entre `-9999999999` y `9999999999`
Big Integer Valor máximo excedido INSERT INTO temp (numbers) VALUE (92343432412351 435123453245) `Given numeric value 92343432412351 435123453 is too large` La columna numbers fue creada como **BIGINT**. El valor del tipo de dato **BIGINT** debe estar entre `-9223372036854775808` y `9223372036854775807`
Text Valor no encerrado entre comillas simples SELECT * FROM temp WHERE name = one `Unknown Table temp or Unknown Column one in WHERE` El valor `one` se considerará como columna si no está encerrado entre comillas: '`one`'