2015-12-08 54 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 '%\_%'