【问题标题】:Not able to find mistake in query giving Invalid column error在给出无效列错误的查询中找不到错误
【发布时间】:2017-08-04 01:34:40
【问题描述】:

我正在编写此查询,但收到错误“无效列”我试过这个answer 但没有运气, 下面是表格和错误

【问题讨论】:

  • 不能在同一查询中自引用别名列

标签: sql-server


【解决方案1】:

您不能在同一 SELECT 语句中使用别名。要么你把它放在一个子查询中:

SELECT
    npv, npv - 1000
FROM (
    SELECT (listprice - standardcost) * quantity AS npv
    FROM SampleTable
) t

或者重复使用公式:

SELECT 
    (listprice - standardcost) * quantity AS npv,
    ((listprice - standardcost) * quantity) - 1000
FROM SampleTable

如果您在嵌套或连接查询中多次使用该公式,您可以将其放入CTE

WITH Cte AS(
    SELECT *
        (listprice - standardcost) * quantity AS npv,
        ((listprice - standardcost) * quantity) - 1000 AS colAlias -- your alias here
    FROM SampleTale
)
SELECT * FROM Cte

下次使用该公式时,请改用 CTE 中的 SELECT

【讨论】:

  • 如果我的公式太长并且需要在查询中使用多次,那么这是唯一的方法还是任何捷径??
猜你喜欢
  • 1970-01-01
  • 2021-07-04
  • 2015-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
  • 1970-01-01
相关资源
最近更新 更多