';'附近的语法不正确

时间:2018-08-13 11:02:46

标签: sql sql-server

在SQL Server 2016中,我在以下查询中错过了此错误:

 select count(*) 
 from (select count(*), clave 
       from products 
       where state = 1 
       group by key 
       having count(*) > 1 );

如果插入了无效的字符或空格,我尝试将查询复制并粘贴到记事本中。

2 个答案:

答案 0 :(得分:2)

您需要别名:

select count(*) 
from (select count(*)
      from products 
      where [state] = 1 
      group by [key]
      having count(*) > 1 
     ) t; -- t alias

考虑仅使用非SQL Server保留的单词或标识符,例如key(尤其是在您的情况下)和many more

第二件事,当在查询中包含group by子句时,您应该注意带有表达式/列(在select子句中可用的表达式/列或不在group by子句中,则应在该列/表达式中包含聚合函数。)

答案 1 :(得分:-1)

“键”是一个保留字,因此您不能使用它,因此应重命名它,结果是一个表,因此应给它一个别名。 尝试类似

select count(*) 
 from (select count(*), clave 
       from products 
       where state = 1 
       group by key1 
       having count(*) > 1 ) AS product_alias;

'