我正在使用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 ...
答案 0 :(得分:0)
是的,您可以在GROUP BY
之后使用NULL
。您似乎那里有一些错误的字符-就像不是真正的行尾。
您可以做的一件事就是增加一个额外的空间-可以肯定的是。这是每行的开头:
SELECT name
FROM table
WHERE name IS NOT NULL
GROUP BY name