一尘不染

如何通过另一个计算列使用一个计算列

sql

我在Sqlite中有一个查询,其中涉及复杂的列计算,可以这样说:

SELECT 1+1 AS a;

我想将此计算选择为a,但我还需要将其用作另一种计算的组成部分:

SELECT 1+1 AS a, a+2 AS b;

不幸的是,这会产生错误:

Error: no such column: a

我知道我可以简单地重复计算b

SELECT 1+1 AS a, 1+1+2 AS b;

但是,假设1+1操作复杂且昂贵,是否有什么方法可以在以后SELECT重新引用它而不必重新计算呢?


阅读 123

收藏
2021-03-08

共1个答案

一尘不染

您需要使用子查询。

SELECT c.d AS a, c.d + 2 AS b
FROM
  (SELECT 1+1 AS d) c

结果

| 一个| b |
---------
| 2 | 4 |
2021-03-08