я использую высказывание регистра в Log Parser, чтобы узнать имена браузера, как, случая strcnt (CS (агент пользователя), «MSIE»), когда 1 THEN «IE»Log Parser саз
Но некоторые полей пользовательского агента имеют «MSIE» более одного раза, есть ли способ проверить> = 1
case strcnt (cs (user-agent), 'MSIE'), когда> = 1 THEN 'IE'
или
случай, когда strcnt (CS (агент пользователя), 'MSIE')> = 1 ТОГДА 'IE'
Я пробовал эту инструкцию iis, дающую синтаксическую ошибку.
Пожалуйста, дайте какой-нибудь другой обходной путь, чтобы проверить более чем один .. вхождение Спасибо
Какая версия logparser является вторым вариантом, который должен работать? Я на 2,2.10, и я несколько раз пытался попробовать такой запрос для анализа без ошибок. – beavel
Оба запроса используют один и тот же синтаксис оператора CASE, поэтому, если первый работает для вас, второй также должен. Какую ошибку вы получаете точно? –
Чтобы быть ясным, я никогда не могу получить оператор CASE, который позволяет любому выражению работать.Чтобы проверить, я взял ваш тестовый пример и попытался запустить следующее: «LogParser -i: W3C -o: CSV» SELECT CASE WHEN INDEX_OF (cs (user-agent), «MSIE») НЕ ЯВЛЯЕТСЯ ТОЛЬКО «IE» КОГДА INDEX_OF (cs (user-agent), «Google») НЕ ЯВЛЯЕТСЯ «ХРОМ», «НЕИЗВЕСТНО» из C: \ logs \ * »', что приводит к ошибке: Ошибка синтаксиса:: ожидается WHEN ключевое слово вместо токена «INDEX_OF (cs (user-agent)», «Мне кажется, что он анализирует его как синтаксис равенства, поскольку есть КОГДА, предшествующий токену, о котором он жалуется. –
beavel