跳转到正文

Snowflake 格式化工具

按照 Snowflake 规则格式化 Snowflake SQL,支持 $$ 字符串、// 注释、:: 类型转换,以及 src:customer.name 等半结构化路径。QUALIFY 和 MINUS 会作为子句处理;SELECT * EXCLUDE、RENAME 和 REPLACE 保持在同一行,ASOF JOIN 则另起一行。未闭合的字符串和括号会报告行和列,帮助数据工程师检查数据仓库查询和脚本。

重置

常见问题

支持识别哪些 Snowflake 语法?

可识别带反斜杠转义和双引号转义的单引号字符串、$$ 美元引用字符串、双引号标识符、$1 列引用和 :: 类型转换。Snowflake 除了接受 -- 和 /* */ 之外也接受的 // 行注释同样会保留。

半结构化路径会保持完整吗?

会。src:customer.name 或 v:items[0]::string 这样的路径会保持连在一起,因此 VARIANT 访问不会被空格拆开。

支持哪些 Snowflake 子句?

QUALIFY 会另起一行,MINUS 的处理方式与其他集合运算符相同。ASOF JOIN 会像其他联接一样另起一行。

SELECT * EXCLUDE 会如何处理?

EXCLUDE、RENAME、REPLACE 和 ILIKE 会与它们修饰的星号保持在同一行。因此,SELECT * EXCLUDE (secret) 会作为一个列表达式显示。

$$ 中的过程体会如何处理?

以 $$ 标记括起来的 JavaScript、Python 或 Snowflake Scripting 过程体会原样保留。对 Snowflake 来说,它们是字符串,重新格式化可能会改变代码。

支持 MERGE 吗?

会。WHEN MATCHED 和 WHEN NOT MATCHED 分支会另起一行。

它会更改关键字的大小写吗?

不会。关键字和名称会保留你输入时的大小写。带引号的标识符在 Snowflake 中区分大小写,因此不会被改动。

会检测哪些错误?

未闭合的字符串、$$ 字符串、带引号的标识符和块注释,以及不匹配的括号;每项都会标明行和列。任何内容都不会发送到你的数据仓库。

输入内容可以有多大?

每个请求最多 1 MB,每条语句最多 128 KB。包含多条语句的工作表会逐条格式化。

可以选择缩进方式吗?我的 SQL 会保存吗?

可使用 2 个或 4 个空格,也可使用制表符。SQL 只会在内存中格式化,绝不会保存。

关于 OneClick Pro

OneClick Pro 是一个免费的工具集合,包含超过 150 种网络工具,助你处理日常工作:转换图像和单位、格式化和验证代码、检查域名和 SEO,以及处理文本、日期和数字。所有工具均可免注册、免订阅使用;你输入的内容仅用于计算结果,绝不会被存储。你可以将它用作处理临时任务的快捷工具箱,也可以收藏每天都会用到的工具。