我有一个SQLite3查询,因为列不存在而爆炸。以下是查询的简化版本:
SELECT
colA,
colB,
(colA + colB) colC,
(colA + colB + colC) colD
FROM
myTable
在计算colD的行上引用colC时,查询正在爆炸。我希望,因为我在colD之前定义了colC,它会起作用。
我能做些什么来实现我想要的东西?我需要在运行查询时计算colC。
答案 0 :(得分:2)
您可以使用子查询:
SELECT
colA,
colB,
colC,
(colA + colB + colC) colD
FROM (
SELECT
colA,
colB,
(colA + colB) colC
FROM
myTable
) x
答案 1 :(得分:0)
Per this:
SQLite(目前)没有对关于列名的任何承诺做出承诺 省略AS子句的查询。
我建议尝试这个:
SELECT
colA,
colB,
(colA + colB) AS colC,
(colA + colB + colC) AS colD
FROM
myTable
在结果集准备就绪之前,计算出的值可能不会出现别名......或其他一些此类计时问题。为什么不简单地重复这样的计算:
SELECT
colA,
colB,
(colA + colB) colC,
(colA + colB + colA + colB) colD
FROM
myTable
这样就可以避免读取别名的计算列。