eval evalúa su argumento como una cadena de consulta y, a continuación, ejecuta esa cadena como una única consulta SELECT.
Esta función de tabla es Experimental y está deshabilitada de forma predeterminada. Habilítela con la configuración allow_experimental_eval_table_function:
Sintaxis
Argumentos
expression— Una expresión constante que devuelve una cadena de consulta. Se permiten parámetros de consulta y subconsultas escalares.SELECT ...— Una consultaSELECTque devuelve una cadena de consulta. Esta forma es azúcar sintáctico de una subconsulta escalar:eval(SELECT ...)es equivalente aeval((SELECT ...)), por lo que la consulta debe devolver exactamente una fila y una columna.
StringNullable(String)LowCardinality(String)LowCardinality(Nullable(String))
NULL, eval lanza una excepción.
Valor devuelto
Devuelve el resultado de la consultaSELECT generada en forma de tabla.
El esquema de salida se determina cuando se analiza la función de tabla eval, por lo que las consultas externas pueden hacer referencia a los nombres y tipos reales de las columnas de la consulta generada.
Ejemplos
Evalúe una expresión constante:SELECT de entrada que devuelva el texto de la consulta:
Restricciones
- La consulta generada debe ser una única consulta
SELECT, sin opciones de salida comoINTO OUTFILEoFORMAT.evalno ejecuta múltiples sentencias. - La consulta generada debe ser autocontenida: se resuelve en su propio ámbito y no puede hacer referencia a alias de
WITHni a columnas de la consulta externa. - La consulta generada no puede volver a usar la función de tabla
eval. evalno puede usarse como argumento de otra función de tabla, comoremote('host', eval(...)). Para ejecutar la consulta generada en un servidor remoto, envuélvela enview:remote('host', view(SELECT * FROM eval(...))).- El argumento se evalúa una vez durante el análisis de la consulta, no una vez por fila o bloque.
- El registro de consultas de la consulta externa registra la consulta original que contiene
eval; la consultaSELECTgenerada no se registra como una consulta de usuario independiente.
Relacionados
- función de tabla
view - configuración
allow_experimental_eval_table_function