SQLite:根据其他Calculated Col的结果计算col

时间:2014-09-23 12:32:57

标签: sql sqlite

在SQLite数据库中,我有一个包含整数类型col“a”的表“test”。

基于那个col,我想再计算2个cols,但第二个需要第一个cols的结果。

所以我尝试了以下内容:

SELECT a, a+1 AS b, b*2 AS c FROM test

但是在SQLite中它不起作用:

Error: no such column: b

在其他DBMS中似乎有效,我在w3schools尝试使用以下查询进行类似的操作。

SELECT customerid as a, a+1 AS b, b*2 AS c FROM customers

......那里有一切正常。

有没有办法在没有任何子选择的情况下在SQLite中实现相同的效果?

1 个答案:

答案 0 :(得分:1)

检查this link它在哪里讨论MySQL中列别名的限制。从链接中引用相关行:

  

WHERE子句确定哪些行应包含在GROUP BY子句中,但它引用的列别名是在选择行之后才知道的,并按GROUP BY分组。

我想,通过扩展,使用别名在同一个查询中进行选择会因同样的原因而失败。

相反,请尝试在所有表达式中使用列名。这样,您的代码就可以在所有DBMS中运行。

SELECT a, a+1 AS b, (a+1)*2 AS c FROM test