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

在where子句SQL中引用计算列

韦安怡
2023-03-14
问题内容

这行代码是我的select语句的摘录。

frdFreedays - DateDiff(dd,conReceiptToStock,GetDate()) As FreeDaysRemaining

以下是我的where子句的摘录

and frdFreedays - DateDiff(dd,conReceiptToStock,GetDate()) <= @intFreeDays

我的问题是如何引用FreeDaysRemaining列,因此可以将其与@进行比较intFreeDays

我正在寻找这样的东西

Freedays <= @intFreeDays

问题答案:

除了Aaron的答案,您还可以使用公用表表达式:

;with cte_FreeDaysRemaining as
    (
        select
            frdFreedays - DateDiff(dd,conReceiptToStock,GetDate()) As FreeDaysRemaining
            --, more columns
        from yourtable
    )
    select
        FreeDaysRemaining
        --, more columns
    from cte_FreeDaysRemaining
    where FreeDaysRemaining <= @intFreeDays


 类似资料:
  • 问题内容: 我有一个执行一些排名的SQL查询,如下所示: 我想在末尾的WHERE条件下使用该排名。 现在,我将此查询嵌套在另一个查询中,并在该查询上进行排名过滤,但是没有更简单或更快速的方法来过滤SELECT语句中的此类值吗? 问题答案: 使用CTE(公用表表达式)-一种“内联”视图,仅用于下一条语句:

  • WHERE 子句用于过滤记录。 SQL WHERE 子句 WHERE 子句用于提取那些满足指定标准的记录。 SQL WHERE 语法SELECT column_name,column_name FROM table_name WHERE column_name operator value; 演示数据库 在本教程中,我们将使用 RUNOOB 样本数据库。 下面是选自 "Websites" 表的数据

  • 问题内容: 我懂了 “无效的列名daysdiff”。 Maxlogtm是日期时间字段。是让我发疯的小东西。 问题答案: 通常,您不能在子句中引用字段别名。(将其视为包括别名在内的全部内容,在该子句之后应用。) 但是,如其他答案所述,您可以强制将SQL视为在子句之前进行处理。通常使用圆括号来强制操作的逻辑顺序,或者使用通用表表达式(CTE)来完成此操作: 括号/子选择: 或参阅亚当的CTE版本答案。

  • 问题内容: 我想使用in子句,但它返回错误。 我可以在where子句中使用CASE吗?或如何解决?谢谢 问题答案: 就您而言,您只需要OR 一种情况是针对 值 ,而不是条件。条件在CASE表达式之外 例如

  • Where 子句用于在从表中获取数据或将其包含在其他表中时生成条件。如果满足条件,则它从表中返回一个特定值。我们使用 WHERE 子句来过滤数据库中的记录并获取主要记录。 在 SELECT 语句中使用了 WHERE 子句,但它也用于 UPDATE、DELETE 帐户等。 语法: 我们使用逻辑运算符生成条件,它们是:、、、、 等。 下面来看一个例子,已更换的理解: 示例 请参阅具有以下记录的 EMP

  • 我可以通过两种方式来实现这一点,使用where子句或join查询,在spark SQL中哪个更快?为什么?Where子句比较列添加、选择那些记录还是在列本身上联接,哪个更好?