Firebird 中的计算结果 SELECT
Calculated result in Firebird SELECT
谁能解释一下为什么会这样:
Select C1, C2, C1 + C2 as C3
from V1,V2
where C2 > 0
和
Select C1, C2, C1 + C2 as C3
from V1,V2
where C3 > 0
给出以下错误:
*Dynamic SQL Error
*SQL error code = -206
*Column unknown
*C3
*At line 1, column 53
caused by
'isc_dsql_prepare'
这是使用带有 LibreOffice 6.1.3 的 Firebird 版本
您不能在 WHERE
子句中使用来自 SELECT
列列表的别名:您需要使用原始列; select 的列列表在 where
之后 求值。换句话说,您需要使用 where C1 + C2 > 0
或者,您需要使用子查询:
select *
from (Select C1, C2, C1 + C2 as C3 from V1,V2) a
where C3 > 0
我强烈建议您开始使用 SQL-92 显式连接,因为它们比 SQL-89 隐式连接更具可读性。
谁能解释一下为什么会这样:
Select C1, C2, C1 + C2 as C3
from V1,V2
where C2 > 0
和
Select C1, C2, C1 + C2 as C3
from V1,V2
where C3 > 0
给出以下错误:
*Dynamic SQL Error
*SQL error code = -206
*Column unknown
*C3
*At line 1, column 53
caused by
'isc_dsql_prepare'
这是使用带有 LibreOffice 6.1.3 的 Firebird 版本
您不能在 WHERE
子句中使用来自 SELECT
列列表的别名:您需要使用原始列; select 的列列表在 where
之后 求值。换句话说,您需要使用 where C1 + C2 > 0
或者,您需要使用子查询:
select *
from (Select C1, C2, C1 + C2 as C3 from V1,V2) a
where C3 > 0
我强烈建议您开始使用 SQL-92 显式连接,因为它们比 SQL-89 隐式连接更具可读性。