2015-11-06 156 views
-1

我有一個MySQL表作爲,忽略MySQL查詢結果列空值

Name Month   Salary 
======================================= 
A Salary_Month_Sept 15000 
A Salary_Month_Oct 0 
B Salary_Month_Sept 12000 
B Salary_Month_Oct 0 
C Salary_Month_Sept 13000 
C Salary_Month_Oct 0 

,我查詢該表作爲

select Name, 
    max(IF(Month = 'Salary_Month_Sept', Salary, 0)) AS 'Salary_Month_Sept', 
    max(IF(Month = 'Salary_Month_Oct', Salary, 0)) AS 'Salary_Month_Oct' 
from myTable 

它返回查詢結果

Name Salary_Month_Sept Salary_Month_Oct 
============================================= 
A  15000    0 
B  12000    0 
C  17000    0 

如何忽略上述查詢結果中只包含零或空值的列。

+0

沒有「逃跑」。數據庫用於存儲數據,而不是很好地格式化數據。在應用程序層執行此操作。 – fancyPants

+0

我的意思是忽略查詢結果中的那一列 – mpsbhat

+0

是的,我明白這是正確的。我的評論依然存在。如果你不想要它,請不要選擇它。就那麼簡單。 – fancyPants

回答

0

請勿使用*。命名您想要的列。查詢不是水晶球。它不知道前面是否會有該列的數據。您需要的條件

  1. 選擇總和(salary_sept),總和(salary_oct),...:做這樣的事情,你需要2個查詢,假設工資僅爲正。

  2. 僅爲返回大於零的和的列創建第二個選擇。

SQL沒有時間機器,對不起。你必須自己做你的工作。