ClickHouse SQLの方言のANSI SQLの互換性 

行動の違い 

次の表は、ClickHouseでクエリ機能が機能しますが、ANSI SQLで指定されているように動作しないケースを示しています。

Feature ID 機能名 違い
E011 数値データ型 数値リテラルと期間として解釈される近似 (Float64)の代わりに正確な (Decimal)
E051-05 選択した項目の名前を変更できます アイテムの名前変更は、選択結果だけよりも可視性の範囲が広くなります
E141-01 NULLでない制約 NOT NULL は黙示のためのテーブル列によるデフォルト
E011-04 算術演算子 ClickHouse溢れの代わりに次の算術演算の結果のデータ型に基づくカスタムルール

機能の状態 

Feature ID 機能名 状態 コメント
E011 数値データ型 部分的
E011-01 整数およびSMALLINTデータ型 はい。
E011-02 実数、倍精度および浮動小数点データ型データ型 部分的 FLOAT(<binary_precision>), REALDOUBLE PRECISION 対応していません
E011-03 DECIMALおよびNUMERICデータ型 部分的 のみ DECIMAL(p,s) サポートされています。 NUMERIC
E011-04 算術演算子 はい。
E011-05 数値比較 はい。
E011-06 数値データ型間の暗黙的なキャスト いいえ。 ANSI SQLできる任意の暗黙的な数値型の間のキャストがClickHouseに依存しての機能を有する複数の過負荷の代わりに暗黙的なキャスト
E021 文字列タイプ 部分的
E021-01 文字データ型 いいえ。
E021-02 文字変化型データ型 いいえ。 String 動作同様に、長さの制限内
E021-03 文字リテラル 部分的 連続したリテラルと文字セットの自動連結はサポートされません
E021-04 CHARACTER_LENGTH関数 部分的 いいえ。 USING
E021-05 OCTET_LENGTH関数 いいえ。 LENGTH 同様に動作します
E021-06 SUBSTRING 部分的 サポートなし SIMILARESCAPE 句、ない SUBSTRING_REGEX バリアント
E021-07 文字の連結 部分的 いいえ。 COLLATE
E021-08 上部および下の機能 はい。
E021-09 トリム機能 はい。
E021-10 固定長および可変長文字ストリング型間の暗黙的なキャスト いいえ。 ANSI SQLできる任意の暗黙の間のキャスト文字列の種類がClickHouseに依存しての機能を有する複数の過負荷の代わりに暗黙的なキャスト
E021-11 位置関数 部分的 サポートなし INUSING 句、ない POSITION_REGEX バリアント
E021-12 文字の比較 はい。
E031 識別子 部分的
E031-01 区切り識別子 部分的 Unicodeリテラルの支援は限られ
E031-02 小文字の識別子 はい。
E031-03 末尾のアンダースコア はい。
E051 基本的なクエリ仕様 部分的
E051-01 SELECT DISTINCT はい。
E051-02 GROUP BY句 はい。
E051-04 グループによる列を含むことができない <select list> はい。
E051-05 選択した項目の名前を変更できます はい。
E051-06 句を持つ はい。
E051-07 選択リストの修飾* はい。
E051-08 FROM句の相関名 はい。
E051-09 FROM句の列の名前を変更します いいえ。
E061 基本的な述語と検索条件 部分的
E061-01 比較述語 はい。
E061-02 述語の間 部分的 いいえ。 SYMMETRICASYMMETRIC
E061-03 値のリストを持つ述語で はい。
E061-04 述語のように はい。
E061-05 LIKE述語:エスケープ句 いいえ。
E061-06 Null述語 はい。
E061-07 定量化された比較述語 いいえ。
E061-08 存在する述語 いいえ。
E061-09 比較述語のサブクエリ はい。
E061-11 In述語のサブクエリ はい。
E061-12 定量化された比較述語のサブクエリ いいえ。
E061-13 相関サブクエリ いいえ。
E061-14 検索条件 はい。
E071 基本的なクエリ式 部分的
E071-01 UNION DISTINCTテーブル演算子 いいえ。
E071-02 UNION ALLテーブル演算子 はい。
E071-03 DISTINCTテーブル演算子を除く いいえ。
E071-05 列の結合経由でテーブル事業者の必要のない全く同じデータ型 はい。
E071-06 サブクエリ内のテーブル演算子 はい。
E081 基本権限 部分的 進行中の作業
E091 関数の設定 はい。
E091-01 AVG はい。
E091-02 COUNT はい。
E091-03 MAX はい。
E091-04 MIN はい。
E091-05 SUM はい。
E091-06 すべての量指定子 いいえ。
E091-07 異なる量指定子 部分的 な集計機能に対応
E101 基本的なデータ操作 部分的
E101-01 INSERT文 はい。 注:ClickHouseの主キーは、 UNIQUE 制約
E101-03 検索されたUPDATE文 いいえ。 そこには ALTER UPDATE バッチデータ変更のための命令
E101-04 検索されたDELETE文 いいえ。 そこには ALTER DELETE バッチデータ削除のための命令
E111 単一行SELECTステートメント いいえ。
E121 基本的にカーソルを支援 いいえ。
E121-01 DECLARE CURSOR いいえ。
E121-02 ORDER BY列を選択リストに含める必要はありません いいえ。
E121-03 ORDER BY句の値式 いいえ。
E121-04 開いた声明 いいえ。
E121-06 位置付きUPDATE文 いいえ。
E121-07 位置づけDELETEステートメント いいえ。
E121-08 閉じる文 いいえ。
E121-10 FETCHステートメント:暗黙的なNEXT いいえ。
E121-17 ホールドカーソル付き いいえ。
E131 Null値のサポート(値の代わりにnull) 部分的 一部の制限が適用されます
E141 基本的な整合性制約 部分的
E141-01 NULLでない制約 はい。 注: NOT NULL は黙示のためのテーブル列によるデフォルト
E141-02 NULLでない列の一意制約 いいえ。
E141-03 主キー制約 いいえ。
E141-04 参照削除アクションと参照updateアクションの両方に対するNO ACTIONのデフォルトを持つ基本外部キー制約 いいえ。
E141-06 制約のチェック はい。
E141-07 列の既定値 はい。
E141-08 主キーで推論されるNULLではありません はい。
E141-10 外部キーの名前は任意の順序で指定できます いいえ。
E151 取引サポート いいえ。
E151-01 COMMIT文 いいえ。
E151-02 ROLLBACKステートメント いいえ。
E152 基本セット取引明細書 いいえ。
E152-01 SET TRANSACTION文:分離レベルSERIALIZABLE句 いいえ。
E152-02 SET TRANSACTION文:READ ONLY句とREAD WRITE句 いいえ。
E153 サブクエリを使用した更新可能なクエリ いいえ。
E161 先頭のdouble minusを使用したSQLコメント はい。
E171 SQLSTATEサポート いいえ。
E182 ホスト言語バインド いいえ。
F031 基本的なスキーマ操作 部分的
F031-01 永続ベーステーブルを作成するCREATE TABLE文 部分的 いいえ。 SYSTEM VERSIONING, ON COMMIT, GLOBAL, LOCAL, PRESERVE, DELETE, REF IS, WITH OPTIONS, UNDER, LIKE, PERIOD FOR 句およびユーザー解決データ型のサポートなし
F031-02 CREATE VIEW文 部分的 いいえ。 RECURSIVE, CHECK, UNDER, WITH OPTIONS 句およびユーザー解決データ型のサポートなし
F031-03 グラント声明 はい。
F031-04 ALTER TABLE文:ADD COLUMN句 部分的 サポートなし GENERATED 節およびシステム期間
F031-13 DROP TABLE文:RESTRICT句 いいえ。
F031-16 DROP VIEW文:RESTRICT句 いいえ。
F031-19 REVOKEステートメント:RESTRICT句 いいえ。
F041 基本的な結合テーブル 部分的
F041-01 Inner join必ずというわけではないが、内側のキーワード) はい。
F041-02 内部キーワード はい。
F041-03 LEFT OUTER JOIN はい。
F041-04 RIGHT OUTER JOIN はい。
F041-05 外部結合は入れ子にできます はい。
F041-07 左外部結合または右外部結合の内部テーブルは、内部結合でも使用できます はい。
F041-08 すべての比較演算子がサポ) いいえ。
F051 基本日時 部分的
F051-01 日付データ型(日付リテラルのサポートを含む) 部分的 リテラルなし
F051-02 秒の小数部の精度が0以上の時刻データ型(時刻リテラルのサポートを含む) いいえ。
F051-03 タイムスタンプのデータ型を含む支援のタイムスタンプ文字と小数点以下の秒の精度で少なくとも0-6 いいえ。 DateTime64 timeは同様の機能を提供します
F051-04 日付、時刻、およびタイムスタンプのデータ型の比較述語 部分的 使用可能なデータ型は一つだけです
F051-05 Datetime型と文字列型の間の明示的なキャスト はい。
F051-06 CURRENT_DATE いいえ。 today() 似ています
F051-07 LOCALTIME いいえ。 now() 似ています
F051-08 LOCALTIMESTAMP いいえ。
F081 ビュー内の組合および除く 部分的
F131 グループ化操作 部分的
F131-01 ここで、グループにより、条項対応してクエリを処理するクラウドの場合グ眺望 はい。
F131-02 グループ化されたビュ はい。
F131-03 セット機能に対応してクエリを処理するクラウドの場合グ眺望 はい。
F131-04 GROUP BY句とHAVING句およびグループ化ビューを持つサブクエリ はい。
F131-05 GROUP BY句およびHAVING句およびグループ化ビューを使用した単一行選択 いいえ。
F181 複数モジュール対応 いいえ。
F201 キャスト機能 はい。
F221 明示的な既定値 いいえ。
F261 大文字と小文字の式 はい。
F261-01 簡単な場合 はい。
F261-02 検索ケース はい。
F261-03 NULLIF はい。
F261-04 COALESCE はい。
F311 スキーマ定義文 部分的
F311-01 CREATE SCHEMA いいえ。
F311-02 永続ベーステーブルのテーブルの作成 はい。
F311-03 CREATE VIEW はい。
F311-04 CREATE VIEW: WITH CHECK OPTION いいえ。
F311-05 グラント声明 はい。
F471 スカラーサブクエリ値 はい。
F481 展開されたNULL述語 はい。
F812 基本的なフラグ設定 いいえ。
T321 基本的なSQL呼び出しルーチン いいえ。
T321-01 オーバーロードのないユーザー定義関数 いいえ。
T321-02 過負荷のないユーザー定義ストアドプロシージャ いいえ。
T321-03 関数呼び出し いいえ。
T321-04 CALL文 いいえ。
T321-05 RETURN文 いいえ。
T631 一つのリスト要素を持つ述語で はい。

Rating: 5 - 6 votes

Was this content helpful?
★★★★★