Sql 为什么oracle会说无效字符?

Sql 为什么oracle会说无效字符?,sql,oracle,Sql,Oracle,我对Oracle非常陌生,我正在练习一些遇到“无效字符(SQL-HY000)”问题的示例 下面是我在实践中使用的示例表和数据 CREATE TABLE games ( id INT NOT NULL PRIMARY KEY , city VARCHAR(20), name VARCHAR(20) ); INSERT INTO games(id,city,name) VALUES (2004,'Athens','football'); INSERT INTO games(

我对Oracle非常陌生,我正在练习一些遇到“无效字符(SQL-HY000)”问题的示例

下面是我在实践中使用的示例表和数据

CREATE TABLE games (
  id INT NOT NULL PRIMARY KEY ,
  city VARCHAR(20),
  name VARCHAR(20)
);     

INSERT INTO games(id,city,name) VALUES (2004,'Athens','football'); 
INSERT INTO games(id,city,name) VALUES (2008,'Beijing','cricket');

SELECT id, COUNT(*) over() as rowcount 
  FROM games g 
 where name='football' 
 GROUP BY CASE 
            WHEN name='football' 
            THEN g.name 
          END;
select语句中的无效字符是什么


由于
组中的
案例
,我们将非常感谢您提供的任何帮助。另外,
groupby
不是必需的,因为您已经在
WHERE
子句中过滤
football
行:

SELECT id, COUNT(*) OVER() as rowcount 
FROM games g 
WHERE name = 'football' 
当您使用分析函数时,例如
COUNT(*)OVER()
,您不需要使用
groupby
。它们有不同的用途


非常感谢您的帮助您在分析功能和组方面是正确的,不需要,不适用于此场景;但是GROUP BY中的CASE没有任何错误-这不会导致“无效字符”错误(尽管在较旧的数据库版本中可能不起作用)。@Jeffrey Kemp我有这样的情况,我应该在CASE中使用GROUP BY子句,当我像上面一样使用时Oracle抛出了上面的错误。原因可能是什么。猜猜看?你需要展示你的作品。显示您正试图运行的确切查询,并显示完整的错误消息。