【发布时间】:2022-01-05 10:18:28
【问题描述】:
我知道问题在于 SELECT 最后执行。 CASE 执行时,X 列还不存在。 X 列及其值从 a 列和 b 列值的减法中得出 => ROUND((ab)),2) AS [X] 您可以完整地注意到它代码较低: 基本上问题如下:如何让 X 列在 CASE 之前显示其值。
SELECT
e, a, b,ROUND((a-b)),2) AS [X],
CASE WHEN X BETWEEN 5 AND 10 THEN 'Good Choice'
ELSE 'bad choice' END AS 'choice'
FROM table_1
LEFT JOIN table_2 ON table_1.column_1 = table_2.column_2
Where BBB = "VVV" OR BBB = "CCC"
GROUP BY column_1;
【问题讨论】:
-
当前的错误信息是什么?
-
SQLite 支持 CTE(
WITH子句):sqlite.org/lang_with.html。您可以在此处使用一个来生成包含列a, e, b, X的行集,然后让外部(最终)查询引用X。 -
@Tim Biegeleisen 执行完成但出现错误。结果:没有这样的列:X
-
@j_random_hacker 谢谢你的提示,但你能以代码的形式写出来吗?这只是我使用 SQL 的第二天,我查看了您提供的链接,但我无法从文档文件中获取任何内容)
-
我不想为你做这个练习,但你在这里需要一个非
RECURSIVECTE,我承认页面上似乎没有一个很好的例子.这是一个您可以概括的示例:WITH helper AS (SELECT x, y, x + y AS z FROM table42) SELECT x, y, z FROM helper WHERE z > 50;