我有一个日志解析器查询获得前200个uris,但是我不想要任何带有点(。)的cs-uri-stem条目。
这就像我来的那样接近,但看起来通配符并没有按照我的预期行事:
"SELECT TOP 200 cs-uri-stem, COUNT(*) AS Total INTO \Top200URIs_NoDots.csv
FROM "\2015-01\U*.log"
GROUP BY cs-uri-stem
HAVING cs-uri-stem NOT LIKE '%.%'
ORDER BY Total DESC"
当我运行这个时,我得到一个错误:
... HAVING cs-uri-stem NOT LIKE ''...
Error: Syntax Error: <having-clause>: not a valid <expression>
为什么忽略'%'以及它们之间的一切?
答案 0 :(得分:2)
HAVING
用于使用分组数据上的聚合函数过滤组结果。对分组数据进行过滤会使处理更加密集,因为必须首先完成分组。在这种情况下,无论如何都将使用WHERE
子句更好地执行查询。另外,如果这是批处理文件,请记住使用%%
。单个%
表示批处理变量,并且不会使其成为程序的参数。