# BigQuery 格式化工具

使用 BigQuery 规则格式化 Google BigQuery Standard SQL，支持反引号括起的 project.dataset.table 名称、三引号字符串和原始字符串、# 注释以及 @query 参数。QUALIFY 会另起一行，SELECT * EXCEPT 和 REPLACE 会保留在同一行，窗口子句会进行缩进。未闭合的字符串、注释和括号会报告所在行和列，帮助分析师和数据工程师检查查询。

## 常见问题

### 支持哪些 BigQuery 语法？

可识别 `project.dataset.table` 这样的反引号名称、带反斜杠转义的单引号和双引号字符串、三引号字符串，以及带原始字符串前缀 r'' 和字节串前缀 b'' 的字符串。@named 参数和 @@system 变量会按原样保留。

### 格式化工具会保留哈希注释（#）吗？

支持。BigQuery 接受 # 注释以及 -- 和 /* */ 注释，三种注释都会保留在原处。

### 如何处理 QUALIFY？

QUALIFY 会像 WHERE 和 HAVING 一样另起一行。筛选条件会缩进到它的下方。

### SELECT * EXCEPT 和 REPLACE 怎么处理？

当 EXCEPT 或 REPLACE 跟在星号后面时，会与星号保留在同一行。这样 SELECT * EXCEPT (col) 就不会被误认为 EXCEPT 集合运算。

### 数组和结构体会保持完整吗？

会。arr[OFFSET(0)] 这样的数组下标会按原样保留，STRUCT 和 ARRAY 构造函数的格式化方式与其他函数调用相同。

### 窗口函数会如何排版？

较长的 OVER 子句会展开为缩进代码块，其中 PARTITION BY 和 ORDER BY 各占一行。较短的子句则保留在同一行。

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

不会。关键字、函数和名称会保留你输入时的大小写。只有空白字符和换行会改变。

### 会检测哪些错误？

未闭合的字符串、三引号字符串、反引号名称和块注释，以及不匹配的括号；每项都会标明行和列。查询不会发送到 BigQuery，也不会产生费用。

### 输入内容可以有多大？

每个请求最多 1 MB，每条语句最多 128 KB。包含多条语句的脚本会逐条格式化。

### 可以选择缩进方式吗？查询会被保存吗？

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

在这里投放广告？

[给我们发邮件](mailto:hi@dennn.is?subject=%E5%9C%A8%20OneClick%20Pro%20%E4%B8%8A%E6%8A%95%E6%94%BE%E5%B9%BF%E5%91%8A)

[广告 适用于 WordPress 的智能体就绪型插件套件。](https://sleekwp.com/?ref=oneclickpro)
