Compatibilidad de SQL ANSI de ClickHouse SQL Dialect 

Diferencias en el comportamiento 

En la tabla siguiente se enumeran los casos en que la característica de consulta funciona en ClickHouse, pero no se comporta como se especifica en ANSI SQL.

Feature IDNombre de la funciónDiferencia
E011Tipos de datos numéricosEl literal numérico con punto se interpreta como aproximado (Float64) en lugar de exacta (Decimal)
E051-05Los elementos seleccionados pueden ser renombradosLos cambios de nombre de los elementos tienen un alcance de visibilidad más amplio que solo el resultado SELECT
E141-01Restricciones NOT NULLNOT NULL está implícito para las columnas de tabla de forma predeterminada
E011-04Operadores aritméticosClickHouse se desborda en lugar de la aritmética comprobada y cambia el tipo de datos de resultado en función de las reglas personalizadas

Estado de la función 

Feature IDNombre de la funciónEstatusComentario
E011Tipos de datos numéricosParcial
E011-01Tipos de datos INTEGER y SMALLINT
E011-02REAL, DOUBLE PRECISION y FLOAT tipos de datos tipos de datosParcialFLOAT(<binary_precision>), REAL y DOUBLE PRECISION no son compatibles
E011-03Tipos de datos DECIMAL y NUMERICParcialSolo DECIMAL(p,s) es compatible, no NUMERIC
E011-04Operadores aritméticos
E011-05Comparación numérica
E011-06Conversión implícita entre los tipos de datos numéricosNoANSI SQL permite la conversión implícita arbitraria entre tipos numéricos, mientras que ClickHouse se basa en funciones que tienen múltiples sobrecargas en lugar de conversión implícita
E021Tipos de cadena de caracteresParcial
E021-01Tipo de datos CHARACTERNo
E021-02Tipo de datos CHARACTER VARYINGNoString se comporta de manera similar, pero sin límite de longitud entre paréntesis
E021-03Literales de caracteresParcialSin concatenación automática de literales consecutivos y compatibilidad con el conjunto de caracteres
E021-04Función CHARACTER_LENGTHParcialNo USING clausula
E021-05Función OCTET_LENGTHNoLENGTH se comporta de manera similar
E021-06SUBSTRINGParcialNo hay soporte para SIMILAR y ESCAPE cláusulas, no SUBSTRING_REGEX variante
E021-07Concatenación de caracteresParcialNo COLLATE clausula
E021-08Funciones SUPERIOR e INFERIOR
E021-09Función TRIM
E021-10Conversión implícita entre los tipos de cadena de caracteres de longitud fija y longitud variableNoANSI SQL permite la conversión implícita arbitraria entre tipos de cadena, mientras que ClickHouse se basa en funciones que tienen múltiples sobrecargas en lugar de conversión implícita
E021-11Función POSITIONParcialNo hay soporte para IN y USING cláusulas, no POSITION_REGEX variante
E021-12Comparación de caracteres
E031IdentificadorParcial
E031-01Identificadores delimitadosParcialEl soporte literal Unicode es limitado
E031-02Identificadores de minúsculas
E031-03Trailing subrayado
E051Especificación básica de la consultaParcial
E051-01SELECT DISTINCT
E051-02Cláusula GROUP BY
E051-04GROUP BY puede contener columnas que no estén en <select list>
E051-05Los elementos seleccionados pueden ser renombrados
E051-06Cláusula HAVING
E051-07Calificado * en la lista de selección
E051-08Nombre de correlación en la cláusula FROM
E051-09Cambiar el nombre de las columnas en la cláusula FROMNo
E061Predicados básicos y condiciones de búsquedaParcial
E061-01Predicado de comparación
E061-02ENTRE predicadoParcialNo SYMMETRIC y ASYMMETRIC clausula
E061-03Predicado IN con lista de valores
E061-04COMO predicado
E061-05Predicado LIKE: cláusula ESCAPENo
E061-06Predicado NULL
E061-07Predicado de comparación cuantificadoNo
E061-08Predicado EXISTSNo
E061-09Subconsultas en predicado de comparación
E061-11Subconsultas en el predicado IN
E061-12Subconsultas en predicado de comparación cuantificadoNo
E061-13Subconsultas correlacionadasNo
E061-14Condición de búsqueda
E071Expresiones de consulta básicasParcial
E071-01Operador de tabla UNION DISTINCTNo
E071-02Operador de tabla UNION ALL
E071-03EXCEPTO operador de tabla DISTINCTNo
E071-05Las columnas combinadas a través de operadores de tabla no necesitan tener exactamente el mismo tipo de datos
E071-06Operadores de tabla en subconsultas
E081Privilegios básicosParcialTrabajo en curso
E091Establecer funciones
E091-01AVG
E091-02COUNT
E091-03MAX
E091-04MIN
E091-05SUM
E091-06Cuantificador ALLNo
E091-07Cuantificador DISTINCTParcialNo se admiten todas las funciones agregadas
E101Manipulación de datos básicosParcial
E101-01Instrucción INSERTNota: la clave principal en ClickHouse no implica el UNIQUE limitación
E101-03Instrucción UPDATE buscadaNoHay una ALTER UPDATE declaración para la modificación de datos por lotes
E101-04Instrucción DELETE buscadaNoHay una ALTER DELETE declaración para la eliminación de datos por lotes
E111Instrucción SELECT de una sola filaNo
E121Soporte básico del cursorNo
E121-01DECLARE CURSORNo
E121-02Las columnas PEDIR POR no necesitan estar en la lista de selecciónNo
E121-03Expresiones de valor en la cláusula ORDER BYNo
E121-04Declaración ABIERTANo
E121-06Instrucción UPDATE posicionadaNo
E121-07Instrucción DELETE posicionadaNo
E121-08Declaración CERRARNo
E121-10Declaración FETCH: implícita NEXTNo
E121-17CON Cursores HOLDNo
E131Soporte de valor nulo (nulos en lugar de valores)ParcialSe aplican algunas restricciones
E141Restricciones de integridad básicasParcial
E141-01Restricciones NOT NULLNota: NOT NULL está implícito para las columnas de tabla de forma predeterminada
E141-02Restricción UNIQUE de columnas NOT NULLNo
E141-03Restricciones PRIMARY KEYNo
E141-04Restricción básica FOREIGN KEY con el valor predeterminado NO ACTION para la acción de eliminación referencial y la acción de actualización referencialNo
E141-06Restricción CHECK
E141-07Valores predeterminados de columna
E141-08NO NULL inferido en CLAVE PRIMARIA
E141-10Los nombres de una clave externa se pueden especificar en cualquier ordenNo
E151Soporte de transaccionesNo
E151-01Declaración COMMITNo
E151-02Instrucción ROLLBACKNo
E152Instrucción SET TRANSACTION básicaNo
E152-01Instrucción SET TRANSACTION: cláusula ISOLATION LEVEL SERIALIZABLENo
E152-02Instrucción SET TRANSACTION: cláusulas READ ONLY y READ WRITENo
E153Consultas actualizables con subconsultasNo
E161Comentarios SQL usando doble menos inicial
E171Soporte SQLSTATENo
E182Enlace de idioma de hostNo
F031Manipulación básica del esquemaParcial
F031-01Instrucción CREATE TABLE para crear tablas base persistentesParcialNo SYSTEM VERSIONING, ON COMMIT, GLOBAL, LOCAL, PRESERVE, DELETE, REF IS, WITH OPTIONS, UNDER, LIKE, PERIOD FOR cláusulas y sin soporte para tipos de datos resueltos por el usuario
F031-02Instrucción CREATE VIEWParcialNo RECURSIVE, CHECK, UNDER, WITH OPTIONS cláusulas y sin soporte para tipos de datos resueltos por el usuario
F031-03Declaración GRANT
F031-04Sentencia ALTER TABLE: cláusula ADD COLUMNParcialNo hay soporte para GENERATED cláusula y período de tiempo del sistema
F031-13Instrucción DROP TABLE: cláusula RESTRICTNo
F031-16Instrucción DROP VIEW: cláusula RESTRICTNo
F031-19Declaración REVOKE: cláusula RESTRICTNo
F041Tabla unida básicaParcial
F041-01Unión interna (pero no necesariamente la palabra clave INNER)
F041-02Palabra clave INTERNA
F041-03LEFT OUTER JOIN
F041-04RIGHT OUTER JOIN
F041-05Las uniones externas se pueden anidar
F041-07La tabla interna en una combinación externa izquierda o derecha también se puede usar en una combinación interna
F041-08Todos los operadores de comparación son compatibles (en lugar de solo =)No
F051Fecha y hora básicasParcial
F051-01Tipo de datos DATE (incluido el soporte del literal DATE)ParcialNo literal
F051-02Tipo de datos TIME (incluido el soporte del literal TIME) con una precisión de segundos fraccionarios de al menos 0No
F051-03Tipo de datos TIMESTAMP (incluido el soporte del literal TIMESTAMP) con una precisión de segundos fraccionarios de al menos 0 y 6NoDateTime64 tiempo proporciona una funcionalidad similar
F051-04Predicado de comparación en los tipos de datos DATE, TIME y TIMESTAMPParcialSólo un tipo de datos disponible
F051-05CAST explícito entre tipos de fecha y hora y tipos de cadena de caracteres
F051-06CURRENT_DATENotoday() es similar
F051-07LOCALTIMENonow() es similar
F051-08LOCALTIMESTAMPNo
F081UNIÓN y EXCEPTO en vistasParcial
F131Operaciones agrupadasParcial
F131-01Cláusulas WHERE, GROUP BY y HAVING admitidas en consultas con vistas agrupadas
F131-02Múltiples tablas admitidas en consultas con vistas agrupadas
F131-03Establecer funciones admitidas en consultas con vistas agrupadas
F131-04Subconsultas con cláusulas GROUP BY y HAVING y vistas agrupadas
F131-05SELECCIONAR una sola fila con cláusulas GROUP BY y HAVING y vistas agrupadasNo
F181Múltiples módulos de apoyoNo
F201Función de fundición
F221Valores predeterminados explícitosNo
F261Expresión CASE
F261-01Caso simple
F261-02CASO buscado
F261-03NULLIF
F261-04COALESCE
F311Instrucción de definición de esquemaParcial
F311-01CREATE SCHEMANo
F311-02CREATE TABLE para tablas base persistentes
F311-03CREATE VIEW
F311-04CREATE VIEW: WITH CHECK OPTIONNo
F311-05Declaración GRANT
F471Valores escalares de la subconsulta
F481Predicado NULL expandido
F812Marcado básicoNo
T321Rutinas básicas invocadas por SQLNo
T321-01Funciones definidas por el usuario sin sobrecargaNo
T321-02Procedimientos almacenados definidos por el usuario sin sobrecargaNo
T321-03Invocación de funciónNo
T321-04Declaración de LLAMADANo
T321-05Declaración DEVOLUCIÓNNo
T631Predicado IN con un elemento de lista

Clasificación: 5 - 3 voto

¿Este contenido fue útil?
★★★★★