我有一個簡單的查詢,如下所示:SQL Server中,重複的子查詢和別名
Select SUBSTRING(Email, Charindex('@', Email) + 1,
Len(Email) - CharIndex('@', Email)) as EmailDomain,
Count(Email) as Total
from tblPerson
Group by SUBSTRING(Email, Charindex('@', Email) + 1,
Len(Email) - CharIndex('@', Email))
這是除了有一個子查詢重複做工精細:
SUBSTRING(Email, Charindex('@', Email) + 1,
Len(Email) - CharIndex('@', Email))
我已經把一個別名子查詢有as EmailDomain
,但是當我查詢是這樣的:
Select SUBSTRING(Email, Charindex('@', Email) + 1,
Len(Email) - CharIndex('@', Email)) as EmailDomain,
Count(Email) as Total
from tblPerson
Group by EmailDomain
我得到了一個錯誤:
Invalid column name 'EmailDomain'
如何解決此問題,但同時也不使用重複查詢?
這是因爲你'select'聲明你的'組by'條款後面解析。所以如果你在'select'查詢中使用別名,它不會被'group by'識別。您之前提供的主要查詢是查詢它的最佳方法,而不是使用子查詢。 – Utsav
@Utsav啊,謝謝。我想我明白了... – Ian