2015-01-03 19 views
2

我使用下面的查詢,但它給出了一個NULL一行結果的其餘部分:mysql的SELECT CASE,比如一個空行

SELECT CASE 
WHEN csuseragent LIKE '%MSIE+8.0%' or csuseragent like '%Trident%' THEN 'IE' 
WHEN csuseragent LIKE '%Firefox%' THEN 'Firefox' 
WHEN csuseragent LIKE '%chrome%' THEN 'chrome' 
END AS Browser ,count(*) as num 
FROM logs.log 
group by Browser 
order by num desc 

+---------+--------+ 
| Browser | num | 
+---------+--------+ 
| chrome | 319607 | 
| NULL | 125974 | 
| Firefox | 124627 | 
| IE  | 56913 | 
+---------+--------+ 

那麼,如何去除NULL125974

回答

2

您可以使用having子句過濾掉組:

SELECT CASE 
WHEN csuseragent LIKE '%MSIE+8.0%' or csuseragent like '%Trident%' THEN 'IE' 
WHEN csuseragent LIKE '%Firefox%' THEN 'Firefox' 
WHEN csuseragent LIKE '%chrome%' THEN 'chrome' 
END AS Browser ,count(*) as num 
FROM logs.log 
GROUP BY Browser 
HAVING Browser IS NOT NULL 
ORDER BY num DESC 
2

添加WHERE Browser IS NOT NULL條款

1

在這裏你去

SELECT CASE 
WHEN csuseragent LIKE '%MSIE+8.0%' or csuseragent like '%Trident%' THEN 'IE' 
WHEN csuseragent LIKE '%Firefox%' THEN 'Firefox' 
WHEN csuseragent LIKE '%chrome%' THEN 'chrome' 
WHEN Browser IS NOT NULL 
END AS Browser ,count(*) as num 
FROM logs.log 

group by Browser 
order by num desc