Couchbase 查询名称别名

Couchbase Query Name Alias

实际上我正在使用 Couchbase N1Ql 查询从数据库中检索数据,其中包含计算

下面是我查询的类似模型示例:

SELECT 2+1 AS Greeting from something where Greeting>1;

我得到的错误是:

Ambiguous reference to field Greeting.

但是如果我这样修改:

SELECT 2+1 AS Greeting from something where 2+1>1

 

这是可行的,但这不是好的解决方案,因为它涉及大量计算。 谁能帮我优化这个查询?

正如@DinishDB 提到的,投影别名不能在 WHERE 中使用。

SELECT Greeting
FROM something 
LET Greeting = 2+1
WHERE Greeting > 1

LET 变量可以从文档派生,可以链接。 如果让变量在 WHERE 中使用,它将内联并选择索引选择。也在 WHERE FILTER 之前评估的变量。如果未在 WHERE 中使用,它会评估 post FILTER 以保存评估。在上述情况下,它是常数。碰巧 FILTER 的计算结果为假,将不会获取任何文档。

WITH Greeting AS (2+1)
SELECT Greeting
FROM something 
WHERE Greeting > 1

If constant use WITH clause once evaluation vs LET every document evaluation.