我在 Sqlite 中有一个查询涉及复杂的列计算,比方说:
SELECT 1+1 AS a;
Run Code Online (Sandbox Code Playgroud)
我想将此计算选择为a,但我还需要将其用作另一个计算的组成部分:
SELECT 1+1 AS a, a+2 AS b;
Run Code Online (Sandbox Code Playgroud)
不幸的是这会产生错误:
Error: no such column: a
Run Code Online (Sandbox Code Playgroud)
我知道我可以简单地再次重复计算b:
SELECT 1+1 AS a, 1+1+2 AS b;
Run Code Online (Sandbox Code Playgroud)
但假设1+1是一些复杂且昂贵的操作,有什么方法可以让我稍后引用它而SELECT不必重新计算它?
您需要使用子查询。
SELECT c.d AS a, c.d + 2 AS b
FROM
(SELECT 1+1 AS d) c
Run Code Online (Sandbox Code Playgroud)
结果
| 一个 | 乙| --------- | 2 | 4 |
| 归档时间: |
|
| 查看次数: |
4877 次 |
| 最近记录: |