【发布时间】:2013-07-24 14:34:08
【问题描述】:
有人能告诉我为什么会这样抱怨吗? 我正在使用 SQL Server,有一个名为 test 的表和一个名为 word 的列
这是我的查询:
SELECT TOP 1
COUNT(*) AS count,
(LEN(word) - LEN(REPLACE(word,'A',''))) AS letters
FROM dbo.TEST
WHERE
word LIKE '******'
GROUP BY letters
ORDER BY count DESC
这是结果错误:
Msg 207, Level 16, State 1, Line 7
Invalid column name 'letters'.
为什么抱怨我的别名?
【问题讨论】:
-
见Logical Processing Order of the Select statement。
GROUP BY排名第五。SELECT排名第八。并且“因为 SELECT 子句是第 8 步,所以在该子句中定义的任何列别名或派生列都不能被前面的子句引用”
标签: sql-server