SQL Select AS 未被识别为列

SQL Select AS not being recognized as column

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

为什么无法识别新列?

错误消息状态

Invalid Column Name - Filter

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

有几种解决方法,假设 SQL 服务器你可以做到

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

另请注意,由于此标准不可搜索

,因此在大型数据集上性能不会很好