SQL错误:标识符无效

时间:2010-09-17 04:17:13

标签: sql

我是一名SQL新手,我非常感谢在这个相当基本的问题上提供一些帮助。

select comp_table.*
from (select column_1,avg(column_2) as "avg"
      from table_1, group by column_1) comp_table

→返回包含2列column_1avg

的正确记录

但如果我改为:

select comp_table.avg
from (select column_1,avg(column_2) as "avg"
      from table_1, group by column_1) comp_table

→返回错误:无效的标识符“avg”

问题是我只需要选择avg列,因此我无法select comp_table.*。你能帮忙吗?

另外,如果您可以为查询提供一些调整技巧,那就太棒了。

3 个答案:

答案 0 :(得分:4)

当列名未包含在“双引号”中时,名称将标准化为大写;因此,您要求列“AVG”,而列名实际上是“平均”:

select comp_table."avg"
from (select column_1,avg(column_2) as "avg"
  from table_1, group by column_1) comp_table

答案 1 :(得分:1)

您使用的数据库服务器是什么? AVG是我所知道的所有内置函数,所以你需要正确地转义它 - 这取决于数据库服务器。在MS SQL Server中,它是[avg]

答案 2 :(得分:0)

我不知道您使用的是哪个DBMS,但是有些人会因为您使用.avg而感到不安(因为保留了avg)并要求您将其转义。

尝试将其从avg更改为average,就像测试一样:

SELECT comp_table.average
FROM (SELECT column_1, avg(column_2) as average
      FROM table_1, GROUP BY column_1) comp_table
相关问题