【问题标题】:SQL Select AS not being recognized as column [duplicate]SQL Select AS未被识别为列[重复]
【发布时间】:2022-01-13 19:39:36
【问题描述】:

我正在使用一个简单的select 语句并使用CONCAT 函数创建一个列并将该列标记为Filter

为什么无法识别新列?

错误消息状态

无效的列名 - 过滤器

【问题讨论】:

  • 具体是什么DMBS?有些要求您在计算字段之前添加关键字,或者有些保留关键字。我可以在这里看到任何一个问题。
  • 这能回答你的问题吗? Referring to a Column Alias in a WHERE Clause
  • 您的 IDE(可能是 SQL Server SSMS)将您的列别名显示为蓝色 - 这 表示 它是一个保留关键字,因此您应该将它定界 [Filter] 但是上面的解释是可能是你的问题。

标签: sql select


【解决方案1】:

您不能在 where 子句中引用列别名,因为 where 在实现别名之前被处理。

有几种解决方法,假设您可以使用 SQL Server

select *
from table t
cross apply (values(concat(columna,columnb)))c([filter])
where [filter]='something'

另外请注意,在大型数据集上性能不会很好,因为此标准是不可分割的

【讨论】:

    猜你喜欢
    • 2020-12-22
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    • 2019-08-21
    • 2023-02-11
    • 2015-07-27
    • 2013-08-29
    • 1970-01-01
    相关资源
    最近更新 更多