我在Sqlite中有一个查询,其中涉及复杂的列计算,可以这样说:
SELECT 1+1 AS a;
我想将此计算选择为a,但我还需要将其用作另一种计算的组成部分:
a
SELECT 1+1 AS a, a+2 AS b;
不幸的是,这会产生错误:
Error: no such column: a
我知道我可以简单地重复计算b:
b
SELECT 1+1 AS a, 1+1+2 AS b;
但是,假设1+1操作复杂且昂贵,是否有什么方法可以在以后SELECT重新引用它而不必重新计算呢?
1+1
SELECT
您需要使用子查询。
SELECT c.d AS a, c.d + 2 AS b FROM (SELECT 1+1 AS d) c
结果
| 一个| b | --------- | 2 | 4 |