2015-12-08 3 views
2

Comment fournir un caractère d'échappement dans le logparser LIKE condition?Comment faire pour échapper les caractères génériques dans la requête Microsoft Log Parser?

requête actuelle:

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

Exemple de données:

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

A partir des données ci-dessus, je voudrais filtrer uniquement les lignes qui contient un trait de soulignement.

J'ai essayé les options d'échappement habituelles dans SQL comme angle brackets [_], LIKE '%_%' ESCAPE '\' clause, mais ils n'aident pas.

+0

la documentation suggère d'utiliser la notation unicode 'LIKE '% \ u005F%'' (Je ne peux pas me vérifier maintenant donc je ne l'ai pas mis dans une réponse) – Filburt

+0

@Filburt Désolé, n'a pas fonctionné – Vijay

+0

Revisiter le fichier d'aide que j'ai trouvé: * "... LIKE 'ab \ _d': correspond à la chaîne" ab_d "(par ex. "ab_d", "AB_d") ... "* donc dans votre cas' LIKE '% \\ _%' devrait fonctionner – Filburt

Répondre

2

A partir du fichier d'aide Logparser:

Wildcard métacaractères peuvent être utilisés comme des caractères. Pour utiliser un caractère générique en tant que caractère littéral, évitez le caractère générique avec le caractère '\' (barre oblique inverse).
Exemples:
LIKE 'ab_d': correspond à la "ab_d" string (par exemple "ab_d", "AB_d")
LIKE 'a \% c%': correspond à toutes les chaînes qui commencent par "un% c" (par exemple, "un% cdefg", "a% c")

Votre requête devrait ressembler à ceci:

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