使用列别名选择查询

时间:2014-09-03 13:36:20

标签: sql sql-server ms-access access-vba

我有一个类似的查询:

Select table1.Name AS aliasname1, Count(aliasname1) as aliasname2 from table1.

但是我不确定这个查询是否会在sql中成功执行,因为我在同一个select语句中使用了别名。我需要一个在sql中做同样的解决方案。 我想要解决方案

aliasname1   aliasname2

Name1         4
Name2         4
Name3         4
Name4         4

1 个答案:

答案 0 :(得分:2)

您无法像这样在SELECT语句中引用别名。您正在创建并尝试同时调用别名,因此编译器在同一个select语句中引用它时不知道aliasname1是什么。因此,为了解决这个问题,您必须按以下方式编写查询:

select 
  table1.Name AS aliasname1, 
  Count(table1.Name) as aliasname2 
from table1

或者,如果要引用别名,则需要使用子查询:

select aliasname1,
  count(aliasname1) as aliasname2 
from 
(
  select table1.Name AS aliasname1
  from table1
) as d