可以在GROUP BY子句中使用IS NOT NULL吗?

时间:2019-07-02 02:04:46

标签: sql

我正在使用OLEDB连接器作为表格连接到Excel工作表,并运行查询以提取表中出现的一组名称。

运行简单的SELECT * FROM table查询时,连接器返回一堆空行以及实际的表信息。

所以我将查询更新为:

SELECT * FROM table
WHERE name IS NOT NULL

仅给我提供数据的行。 但是name不是唯一的,要获取文件中出现的一组名称,我认为我可以添加GROUP BY:

SELECT name FROM table
WHERE name IS NOT NULL
GROUP BY name

但是这会给出错误消息:

Syntax error (missing operator) in query expression 'name IS NOT NULLGROUP BY name'.

我注意到NULL和GROUP BY之间没有空格,并且以为也许我忘了换行。但这在查询中由空格正确分隔了。

是否可以在WHERE <> IS NOT NULL子句之后使用GROUP BY? 我的代码中是否缺少一些明显的错误?

如果我删除IS NOT NULL子句并只使用GROUP BY,结果行之一将为空,因此我仍然需要测试它是否不为NULL ...

1 个答案:

答案 0 :(得分:0)

是的,您可以在GROUP BY之后使用NULL。您似乎那里有一些错误的字符-就像不是真正的行尾。

您可以做的一件事就是增加一个额外的空间-可以肯定的是。这是每行的开头:

 SELECT name
 FROM table
 WHERE name IS NOT NULL
 GROUP BY name