You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery SQL中管道运算符`|>`是什么?如何使用?

BigQuery中管道运算符|>的含义与正确用法

先澄清初始错误场景

你写出的无效SQL:

WITH foo AS (SELECT 1)
FROM bar a
WHERE x = y

本身存在语法问题——CTE(公共表达式)定义后缺少核心的SELECT语句,BigQuery的错误提示里提到的|>管道符,是针对脚本模式的语法提示,并非普通SQL查询的用法。

|>管道运算符的本质

|>是BigQuery**脚本模式(Scripting)**专属的语法,作用是将前一条语句的执行结果,直接传递给下一条语句作为操作对象,无需显式创建临时表或变量来存储中间结果,以此简化多步骤脚本的写法。

正确使用方式

要使用|>,必须确保当前处于脚本模式(BigQuery UI中可通过勾选“脚本模式”选项开启,命令行工具需指定--use_legacy_sql=false并运行多语句脚本)。以下是有效示例:

-- 脚本模式下的管道符用法示例
SELECT * FROM bigquery-public-data.samples.shakespeare
|> WHERE word_count > 100
|> SELECT word, word_count
|> ORDER BY word_count DESC
|> LIMIT 10

这个脚本会依次执行:

  1. 查询莎士比亚语料库全量数据
  2. 过滤出词频大于100的记录
  3. 仅保留word和word_count字段
  4. 按词频降序排序
  5. 取前10条结果

你测试失败的原因

你直接在普通查询模式下使用|>,而该语法仅支持脚本模式;同时ChatGPT给出的示例未说明“脚本模式”这个前提条件,导致执行报错。

额外说明

|>不仅支持查询类语句,还可以将结果传递给DML/DDL语句,比如:

SELECT word, word_count FROM bigquery-public-data.samples.shakespeare
|> WHERE word_count > 500
|> INSERT INTO my_dataset.my_table(word, count)

内容的提问来源于stack exchange,提问作者Tobias Hermann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 07:43:12