gpt4 book ai didi

sql - 根据别名列名进行过滤

转载 作者:行者123 更新时间:2023-12-02 08:26:02 25 4
gpt4 key购买 nike

我正在使用 SqlServer 2005,并且我有一个我命名的列。

查询类似于:

SELECT id, CASE WHEN <snip extensive column definition> END AS myAlias
FROM myTable
WHERE myAlias IS NOT NULL

但是,这给了我错误:

"Invalid column name 'myAlias'."

有办法解决这个问题吗?过去,我在 WHERE 或 HAVING 部分中包含了列定义,但这些大多都很简单,IE COUNT(*) 或其他什么。我可以在此临时查询中包含整个列定义,但如果由于某种原因我需要在生产查询中执行此操作,我宁愿仅将列定义包含一次,这样我就不必同时更新两者(并且忘记在某个时候做一件事)

最佳答案

您不能在这样的 where 子句中引用别名...您必须在 WHERE 中复制 CASE,或者可以使用如下子查询:

SELECT id, myAlias
FROM
(
SELECT id, CASE WHEN <snip extensive column definition> END AS myAlias
FROM myTable
) data
WHERE myAlias IS NOT NULL

关于sql - 根据别名列名进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2311671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com