3

ログ パーサーで case ステートメントを使用して、case strcnt(cs(user-agent), 'MSIE') when 1 THEN 'IE' のようなブラウザー名を見つけています。

しかし、一部のユーザー エージェント フィールドには 'MSIE' が複数回含まれています。チェックする方法はありますか >=1

case strcnt(cs(user-agent), 'MSIE') when >=1 THEN 'IE'

また

case when strcnt(cs(user-agent), 'MSIE') >=1 THEN 'IE'

私は構文エラーを与えるこれらのステートメントiisを試しました。

複数の発生を確認するための他の回避策を教えてください..ありがとう

4

4 に答える 4

4

これは私のものです...複数のwhenをサポートしていないようですので、それらをネストする必要があります

case strcnt(cs(user-agent), 'iPhone') WHEN 1 THEN 'iPhone' ELSE 
    case strcnt(cs(user-agent), 'Android') WHEN 1 THEN 'Android' ELSE
        case strcnt(cs(user-agent), 'iPad') WHEN 1 THEN 'iPad' ELSE 
            'Other'
        END
    END
END
于 2016-06-07T13:21:52.020 に答える
-1

これを解決する方法は、複数の when キーワードを使用することでした

CASE strcnt(TO_LOWERCASE(User-Agent),'mobile') when 1 THEN 'Mobile' when 2 THEN 'Mobile' when 3 THEN 'Mobile' else CASE strcnt(TO_LOWERCASE(User-Agent),'feed')  when 1 THEN 'Feed'  when 2 THEN 'Feed'   when 3 THEN 'Feed' ELSE 'Normal' End End 

これは、単語 mobile が 3 回まで表示される場合に適用されます。

于 2014-09-23T09:03:05.130 に答える