BESQL
SQL 方言转换
基于语法树的方言互转
转换引擎先把 SQL 解析为抽象语法树,再按目标方言重新生成语句:函数自动映射(如 MySQL 的 IFNULL/DATE_ADD 转 PostgreSQL 的 COALESCE/间隔运算)、标识符引号风格切换(反引号/双引号/方括号)、分页与日期语法改写,覆盖 MySQL、PostgreSQL、Hive、Spark SQL、SQLite、SQL Server、Oracle、BigQuery、Snowflake、ClickHouse、DuckDB 共 11 种方言,适合数据库迁移与跨平台脚本改写。
常见问题
什么是SQL方言转换?
SQL 方言转换是把一种数据库的 SQL 语句自动改写成另一种数据库等价语句的工具:基于语法树解析而非文本替换,能正确映射函数名、日期运算、分页写法与标识符引号风格,例如把 MySQL 的 IFNULL 转成 PostgreSQL 的 COALESCE。
什么时候用SQL方言转换?
数据库迁移(MySQL 换 PostgreSQL、上云换 Snowflake/BigQuery)需要批量改写存量 SQL;同一份报表脚本要跑在 Hive 与 Spark 两种引擎;把 Oracle 存储过程语句改写到开源数据库;学习不同方言的语法差异。使用时留意:方言特有扩展语法可能无法完全映射,转换结果建议先在目标库验证。
SQL方言转换怎么用?
把 SQL 粘贴到编辑器;选择源方言(默认自动识别)与目标方言;点击「转换」在下方得到改写后的语句;「交换方向」可快速反向转换,结果支持一键复制。
支持哪些数据库方言?
共 11 种:MySQL、PostgreSQL、Hive、Spark SQL、SQLite、SQL Server(T-SQL)、Oracle、BigQuery、Snowflake、ClickHouse 与 DuckDB,源方言支持自动识别。
转换会改变语句语义吗?
引擎按语法树等价改写,正常情况下语义一致;但方言能力不完全对等(如某函数在目标方言没有直接等价物)时可能生成近似写法,重要业务 SQL 转换后请在目标数据库执行验证。
我的 SQL 会留存吗?
SQL 文本发送到服务端仅做一次性语法解析与重写,即时返回结果、不落库不留存;涉密语句建议先替换真实表名与字段。