当前位置: 首页 > 面试题库 >

如何通过另一个计算列使用一个计算列

邢俊悟
2023-03-14
问题内容

我在Sqlite中有一个查询,其中涉及复杂的列计算,可以这样说:

SELECT 1+1 AS a;

我想将此计算选择为a,但我还需要将其用作另一种计算的组成部分:

SELECT 1+1 AS a, a+2 AS b;

不幸的是,这会产生错误:

Error: no such column: a

我知道我可以简单地重复计算b

SELECT 1+1 AS a, 1+1+2 AS b;

但是,假设1+1操作复杂且昂贵,是否有什么方法可以在以后SELECT重新引用它而不必重新计算呢?


问题答案:

您需要使用子查询。

SELECT c.d AS a, c.d + 2 AS b
FROM
  (SELECT 1+1 AS d) c

结果

| 一个| b |
---------
| 2 | 4 |


 类似资料:
  • 问题内容: 我有一个表,其中包含商店中每件商品的单价和其他详细信息。 另一个包含每个订单中包含的项目的详细信息。 现在我要计算 请注意,我希望它成为表本身的一部分,而不是作为其他视图或查询。我怎样才能做到这一点?我为此研究了触发器和其他机制,但是它们是否适用于不同表中的值,尤其是在存在此类约束的情况下? 我尝试过根据另一列计算出的Column进行以下触发吗?: 但这似乎没有用 问题答案: 这是如何

  • 问题内容: 我需要一个简单的应用程序,最好是跨平台的应用程序,该应用程序可以在两台计算机之间发送文件。 它只需要接受并发送文件,并显示进度条即可。我可以使用哪些应用程序或如何编写一个应用程序? 问题答案: 发送和接收文件 文件的发送和接收基本上分为两个简单的代码段。 接收代码: 发送代码: 当他们想要发送文件时,发送代码段将在正在发送代码的计算机上运行。 接收代码需要放入一个循环中,以便每次有人想

  • 我想在一个名为的表中计算名为的同一列: 假设我需要在20180201和20180228之间计算“(值的类型=111或222或333)/(值的类型=444)”,我使用SQL查询如下: 我只选择了备注=“111或222或333”,我不知道为什么会出现所有备注(“555和666”),我得到的结果如下: SQL查询正确吗?我确信我的SQL查询有问题。非常感谢您的建议。

  • 问题内容: 我如何定义一个具有两个计算字段的视图,例如… …并根据前两个计算字段创建第三个计算字段,如… …? 当我按名称引用前两个计算字段时,我收到一条消息,指出字段未知。 谢谢! 问题答案: 由于视图中不允许子查询,因此您需要通过创建多个视图来模拟它们。 例如,如果直接执行此查询,将解决您的问题: 根据MySQL文档,视图在FROM子句中具有不能包含子查询的限制。要变通解决此限制并将该查询转换

  • 问题内容: 我需要在SQL Server数据库中创建一列。 该列的值应基于该列的值进行计算。 同样,它的值应该随着增加而增加。 问题答案: 您应该使用计算列来解决此问题。具有类似以下内容的定义: 原始声明摘自BlackWasp并提供了更多信息。 编辑: MSDN将计算列解释为: 从可以使用同一表中其他列的表达式中计算出计算列。该表达式可以是非计算的列名,常量,函数,以及由一个或多个运算符连接的这些

  • 例1:输入:nums=[3,4,2]输出:6解释:删除4以获得4点,因此3也被删除。然后,删除2个赚取2分。共获得6分。 以下是如何解决它的解释: 算法 我无法理解这里是如何使用和变量的,以及它是如何解决问题语句的。 你能帮我理解这一点吗。