- content
说明
return 用于在多语句流水线中提前返回结果并终止后续执行,类似编程语言中的 return 语句。
适用场景:
- 条件返回——根据中间结果决定是否提前结束。
- 错误处理——某一步失败时返回错误信息并停止。
- 性能优化——已经拿到需要的结果,不需要继续执行剩余语句。
语法
select ...; select ...; return [N | select 语句]
return:返回堆栈中最底层(最早)的结果。return N:返回堆栈中从底数第 N 个结果(0-based)。return 0:返回第 0 个(最早)。return 1:返回第 1 个。return -1:返回最后一个(最新)。return -2:返回倒数第二个。
return select ...:执行并返回指定的 select 语句。return (select ...):同上,括号包裹。
例子
-- return 不带参数:返回最早的 select 1
select 1;
select 2;
return;
-- 结果:1
-- return 0:返回第 0 个(最早)
select 1;
select 2;
return 0;
-- 结果:1
-- return 1:返回第 1 个
select 1;
select 2;
return 1;
-- 结果:2
-- return -1:返回最后一个(最新)
select 1;
select 2;
return -1;
-- 结果:2
-- return -2:返回倒数第二个
select 1;
select 2;
return -2;
-- 结果:1
-- return select:执行并返回指定的 select
select 1;
select 2;
return select 3 as r;
-- 结果:3
-- 在子查询中使用 return
select 9 from (
select 1;
select 2;
return select 3 as r
);
-- 结果:3
注意事项
return会立即终止当前流水线的后续语句。return的索引是 0-based,负数表示从末尾倒数。return可以出现在子查询中,只终止当前子查询的执行。