--- machine_translated: true machine_translated_rev: ad252bbb4f7e2899c448eb42ecc39ff195c8faa1 toc_priority: 40 toc_title: Compatibilidad con ANSI --- # Compatibilidad de SQL ANSI de ClickHouse SQL Dialect {#ansi-sql-compatibility-of-clickhouse-sql-dialect} !!! note "Nota" Este artículo se basa en la Tabla 38, “Feature taxonomy and definition for mandatory features”, Annex F of ISO/IEC CD 9075-2:2013. ## Diferencias en el comportamiento {#differences-in-behaviour} 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 ID | Nombre de la función | Diferencia | |------------|----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------| | E011 | Tipos de datos numéricos | El literal numérico con punto se interpreta como aproximado (`Float64`) en lugar de exacta (`Decimal`) | | E051-05 | Los elementos seleccionados pueden ser renombrados | Los cambios de nombre de los elementos tienen un alcance de visibilidad más amplio que solo el resultado SELECT | | E141-01 | Restricciones NOT NULL | `NOT NULL` está implícito para las columnas de tabla de forma predeterminada | | E011-04 | Operadores aritméticos | ClickHouse 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-status} | Feature ID | Nombre de la función | Estatus | Comentario | |------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **E011** | **Tipos de datos numéricos** | **Parcial**{.text-warning} | | | E011-01 | Tipos de datos INTEGER y SMALLINT | Sí{.text-success} | | | E011-02 | REAL, DOUBLE PRECISION y FLOAT tipos de datos tipos de datos | Parcial{.text-warning} | `FLOAT()`, `REAL` y `DOUBLE PRECISION` no son compatibles | | E011-03 | Tipos de datos DECIMAL y NUMERIC | Parcial{.text-warning} | Solo `DECIMAL(p,s)` es compatible, no `NUMERIC` | | E011-04 | Operadores aritméticos | Sí{.text-success} | | | E011-05 | Comparación numérica | Sí{.text-success} | | | E011-06 | Conversión implícita entre los tipos de datos numéricos | No{.text-danger} | ANSI 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 | | **E021** | **Tipos de cadena de caracteres** | **Parcial**{.text-warning} | | | E021-01 | Tipo de datos CHARACTER | No{.text-danger} | | | E021-02 | Tipo de datos CHARACTER VARYING | No{.text-danger} | `String` se comporta de manera similar, pero sin límite de longitud entre paréntesis | | E021-03 | Literales de caracteres | Parcial{.text-warning} | Sin concatenación automática de literales consecutivos y compatibilidad con el conjunto de caracteres | | E021-04 | Función CHARACTER\_LENGTH | Parcial{.text-warning} | No `USING` clausula | | E021-05 | Función OCTET\_LENGTH | No{.text-danger} | `LENGTH` se comporta de manera similar | | E021-06 | SUBSTRING | Parcial{.text-warning} | No hay soporte para `SIMILAR` y `ESCAPE` cláusulas, no `SUBSTRING_REGEX` variante | | E021-07 | Concatenación de caracteres | Parcial{.text-warning} | No `COLLATE` clausula | | E021-08 | Funciones SUPERIOR e INFERIOR | Sí{.text-success} | | | E021-09 | Función TRIM | Sí{.text-success} | | | E021-10 | Conversión implícita entre los tipos de cadena de caracteres de longitud fija y longitud variable | No{.text-danger} | ANSI 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-11 | Función POSITION | Parcial{.text-warning} | No hay soporte para `IN` y `USING` cláusulas, no `POSITION_REGEX` variante | | E021-12 | Comparación de caracteres | Sí{.text-success} | | | **E031** | **Identificador** | **Parcial**{.text-warning} | | | E031-01 | Identificadores delimitados | Parcial{.text-warning} | El soporte literal Unicode es limitado | | E031-02 | Identificadores de minúsculas | Sí{.text-success} | | | E031-03 | Trailing subrayado | Sí{.text-success} | | | **E051** | **Especificación básica de la consulta** | **Parcial**{.text-warning} | | | E051-01 | SELECT DISTINCT | Sí{.text-success} | | | E051-02 | Cláusula GROUP BY | Sí{.text-success} | | | E051-04 | GROUP BY puede contener columnas que no estén en `