我使用OLEDB连接器以表的形式连接到Excel工作表,并运行查询来提取出现在表中的名称集。
在运行简单的SELECT * FROM table
查询时,连接器返回一堆空行以及实际的表信息。
因此,我将我的查询更新为:
SELECT * FROM table
WHERE name IS NOT NULL
它只给我提供了包含数据的行。然而,name
并不是唯一的,要获得出现在文件中的名称集,我想我可以通过以下方式添加一个组:
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?我的代码中有没有什么明显的bug?
如果我删除IS NOT NULL
子句,只使用GROUP BY
,那么其中一个结果行将是空的,所以我仍然需要测试它是否为NULL...
发布于 2019-07-02 10:07:18
可以,您可以在NULL
之后使用GROUP BY
。您可能有一些错误的字符--比如不是真正的行尾。
您可以做的一件事是添加一个额外的空格--只是为了确保。下面是每一行的开头:
SELECT name
FROM table
WHERE name IS NOT NULL
GROUP BY name
https://stackoverflow.com/questions/56844409
复制相似问题