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.

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 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.

Las siguientes excepciones y particularidades de sintaxis deben tenerse en cuenta al ejecutar una consulta ZCQL:

  1. La función ZCQL 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:

copy
SELECT Name FROM Employee_DB WHERE name = 'Amelia'
  1. 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
  2. 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()
  3. Se han añadido excepciones apropiadas 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.

  4. 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.

  5. La cláusula ORDER BY ahora admite el uso de funciones de ZCQL.

  6. 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

copy
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
  1. Se activarán excepciones apropiadas 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.
  2. Puedes escribir cuatro cláusulas JOIN en una sola sentencia ZCQL. Sin embargo, solo puedes escribir una condición JOIN para cada cláusula de join.

  3. 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

copy
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.
  1. 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.

  2. Al escribir sentencias GROUP BY con Binaryof(), 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:
copy
Select Name from Zylker_EMP group by binaryof(Name)

El resultado podría ser cualquiera de los siguientes:

  • AMELIA
  • amelia
  • burrows
  • Burrows
  1. 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:

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

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