ANSI 模式旨在使 SQL 语法和执行时的行为,与 ANSI 标准或其他主流数据库更加一致。
通过dialect_type
选项,可以使ByteHouse 在 ANSI 模式 和 ClickHouse 模式之间切换,例如:
SET dialect_type = 'CLICKHOUSE'; SET dialect_type = 'ANSI';
ByteHouse 默认使用的是 ClickHouse 模式。
说明
推荐使用上述的 SET 命令设置 dialect_type
,不建推荐通过查询级别的 SETTINGS 来设置,如:
SELECT ... SETTINGS dialect_type = 'ANSI';
在实现方面,许多 ANSI 功能由单独的子选项控制,dialect_type 可以视为这些子选项的总和。 如果需要,可以使用子选项来控制 ANSI 模式下的特定行为,例如:
SET dialect_type = 'ANSI'; SELECT ... SETTINGS join_use_nulls = 0;
ANSI 兼容性详情中列出了 ANSI 相关功能。 如果此功能有单独的子选项,则由 相关子选项 进行解释 。