--- machine_translated: true machine_translated_rev: ad252bbb4f7e2899c448eb42ecc39ff195c8faa1 toc_priority: 40 toc_title: "La Compatibilit\xE9 ANSI" --- # Compatibilité ANSI SQL du dialecte CLICKHOUSE SQL {#ansi-sql-compatibility-of-clickhouse-sql-dialect} !!! note "Note" Cet article s'appuie sur le tableau 38, “Feature taxonomy and definition for mandatory features”, Annex F of ISO/IEC CD 9075-2:2013. ## Différences de comportement {#differences-in-behaviour} Le tableau suivant répertorie les cas où la fonctionnalité de requête fonctionne dans ClickHouse, mais ne se comporte pas comme spécifié dans ANSI SQL. | Feature ID | Nom De La Fonctionnalité | Différence | |------------|-------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------| | E011 | Types de données numériques | Le littéral numérique avec période est interprété comme approximatif (`Float64`) au lieu de exact (`Decimal`) | | E051-05 | Les éléments sélectionnés peuvent être renommés | Les renommages d'élément ont une portée de visibilité plus large que le simple résultat de sélection | | E141-01 | Contraintes non nulles | `NOT NULL` est implicite pour les colonnes de table par défaut | | E011-04 | Opérateurs arithmétiques | Clickhouse déborde au lieu de l'arithmétique vérifiée et modifie le type de données de résultat en fonction des règles personnalisées | ## Fonction D'État {#feature-status} | Feature ID | Nom De La Fonctionnalité | Statut | Commentaire | |------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **E011** | **Types de données numériques** | **Partiel**{.text-warning} | | | E011-01 | Types de données INTEGER et SMALLINT | Oui{.text-success} | | | E011-02 | Types de données réel, double précision et flottant types de données | Partiel{.text-warning} | `FLOAT()`, `REAL` et `DOUBLE PRECISION` ne sont pas pris en charge | | E011-03 | Types de données décimales et numériques | Partiel{.text-warning} | Seulement `DECIMAL(p,s)` est pris en charge, pas `NUMERIC` | | E011-04 | Opérateurs arithmétiques | Oui{.text-success} | | | E011-05 | Comparaison numérique | Oui{.text-success} | | | E011-06 | Casting implicite parmi les types de données numériques | Aucun{.text-danger} | ANSI SQL permet la distribution implicite arbitraire entre les types numériques, tandis que ClickHouse repose sur des fonctions ayant plusieurs surcharges au lieu de la distribution implicite | | **E021** | **Types de chaînes de caractères** | **Partiel**{.text-warning} | | | E021-01 | Type de données CARACTÈRE | Aucun{.text-danger} | | | E021-02 | TYPE DE DONNÉES variable de caractère | Aucun{.text-danger} | `String` se comporte de la même manière, mais sans limite de longueur entre parenthèses | | E021-03 | Littéraux de caractères | Partiel{.text-warning} | Aucune concaténation automatique de littéraux consécutifs et prise en charge du jeu de caractères | | E021-04 | Fonction CHARACTER\_LENGTH | Partiel{.text-warning} | Aucun `USING` clause | | E021-05 | Fonction OCTET\_LENGTH | Aucun{.text-danger} | `LENGTH` se comporte de la même façon | | E021-06 | SUBSTRING | Partiel{.text-warning} | Pas de support pour `SIMILAR` et `ESCAPE` clauses, pas de `SUBSTRING_REGEX` variante | | E021-07 | Concaténation de caractères | Partiel{.text-warning} | Aucun `COLLATE` clause | | E021-08 | Fonctions supérieures et inférieures | Oui{.text-success} | | | E021-09 | La fonction TRIM | Oui{.text-success} | | | E021-10 | Conversion implicite entre les types de chaînes de caractères de longueur fixe et de longueur variable | Aucun{.text-danger} | ANSI SQL permet la distribution implicite arbitraire entre les types de chaîne, tandis que ClickHouse repose sur des fonctions ayant plusieurs surcharges au lieu de la distribution implicite | | E021-11 | La POSITION de la fonction | Partiel{.text-warning} | Pas de support pour `IN` et `USING` clauses, pas de `POSITION_REGEX` variante | | E021-12 | Comparaison de caractères | Oui{.text-success} | | | **E031** | **Identificateur** | **Partiel**{.text-warning} | | | E031-01 | Identificateurs délimités | Partiel{.text-warning} | Le support littéral Unicode est limité | | E031-02 | Identificateurs minuscules | Oui{.text-success} | | | E031-03 | Fuite de soulignement | Oui{.text-success} | | | **E051** | **Spécification de requête de base** | **Partiel**{.text-warning} | | | E051-01 | SELECT DISTINCT | Oui{.text-success} | | | E051-02 | Groupe par clause | Oui{.text-success} | | | E051-04 | GROUP BY peut contenir des colonnes `