我有一个简单的查询,如下所示: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