2015-12-08 99 views
2

如何在logparser LIKE条件中提供转义字符?如何在Microsoft Log Parser查询中转义通配符?

当前查询:

SELECT EXTRACT_TOKEN(cs-uri-stem,1,'/') AS AppPath, Count(*) AS ReqCount 
FROM <MyLogFile> 
WHERE AppPath LIKE '%_%' 

实施例的数据:

+-------------+ 
| cs-uri-stem | 
+-------------+ 
| 120_ABC  | 
| 321_XYZ  | 
| 11_BXY  | 
| ALPHA  | 
| BETA  | 
+-------------+ 

从以上数据,我想过滤仅包含下划线的行。

我尝试了SQL中通常的逃脱选项,如angle brackets [_],LIKE '%_%' ESCAPE '\' clause,但它们没有帮助。

+0

的文档建议使用unicode的符号'LIKE '%\ u005F%'' (现在无法验证我自己,所以我没有把它放在答案中) – Filburt

+0

@Filburt对不起,没有工作 – Vijay

+0

重新访问帮助文件我发现:* “... LIKE'ab \ _d':匹配”ab_d“字符串(例如“ab_d”,“AB_d”)...“*所以在你的情况下,'LIKE'%\\ _%'应该可以工作 – Filburt

回答

2

从LOGPARSER的帮助文件:

的通配符匹配字符可以作为文字字符。要将通配符用作文字字符,请使用'\'(反斜杠)字符转义通配符。
实例:
LIKE 'ab_d':把 “ab_d” 字符串(例如, “ab_d”, “AB_d”)
LIKE '一个\%C%' 匹配:所有开始字符串相匹配以 “a%C” (例如, “一个%CDEFG”, “A%C”)

您的查询应该是这样的:

SELECT EXTRACT_TOKEN(cs-uri-stem,1,'/') AS AppPath, Count(*) AS ReqCount 
FROM <MyLogFile> 
WHERE AppPath LIKE '%\_%'