2016-05-13 72 views
0

我有以下代碼:如何處理空值

`SELECT nt.pl, 
     o.cat, 
     o.coun, 
     COUNT (DISTINCT nt.im) Sub, 
     SUM (nt.DOWN + nt.UP) Vol, 
     COUNT (*) AS counter, 
     CASE 
      WHEN nt.tele = '5' THEN 'Vo' 
      WHEN nt.tele = ('N/A') AND nt.rat = ('G') THEN 'G' 
      ELSE 'Unknown' 
     END 
      AS Service 
    FROM tmp nt, description o 
    WHERE nt.pl = o.pl AND nt.time LIKE '201605%' 
GROUP BY nt.pl, 
     o.cat, 
     o.coun, 
     nt.tele, 
     nt.rat` 

的問題是,列大鼠包含NULL值,並在結果我收到了比預期更多的行。我如何處理這些NULL值。

感謝

+1

請張貼一些樣本數據和期望的結果 – Aleksej

+1

你如何***需要***來處理空值?遇到問題時,你還沒有真正指定你想要做什麼。還有什麼你的意思是你有更多的行比預期?我相信我們可以弄明白,但是在你遇到的問題和你預期的結果是什麼時,要更具體。 – Kritner

回答

3

我懷疑,而不是通過列表具有組中的nt.telent.rat列,您希望的情況下表達代替,例如:

SELECT nt.pl, 
     o.cat, 
     o.coun, 
     COUNT (DISTINCT nt.im) Sub, 
     SUM (nt.DOWN + nt.UP) Vol, 
     COUNT (*) AS counter, 
     CASE 
      WHEN nt.tele = '5' THEN 'Vo' 
      WHEN nt.tele = ('N/A') AND nt.rat = ('G') THEN 'G' 
      ELSE 'Unknown' 
     END 
      AS Service 
    FROM tmp nt, description o 
    WHERE nt.pl = o.pl AND nt.time LIKE '201605%' 
GROUP BY nt.pl, 
     o.cat, 
     o.coun, 
     CASE 
      WHEN nt.tele = '5' THEN 'Vo' 
      WHEN nt.tele = ('N/A') AND nt.rat = ('G') THEN 'G' 
      ELSE 'Unknown' 
     END; 
+0

這是工作:)非常感謝您的幫助 – Kristiana

0

您試圖篩選空值?

WHERE nt.pl = o.pl AND nt.time LIKE '201605%' AND nt.rat is not null 

?? ??