忽略MySQL查询结果列空值
问题描述:
我有一个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
如何忽略上述查询结果中只包含零或空值的列。
答
请勿使用*。命名您想要的列。查询不是水晶球。它不知道前面是否会有该列的数据。您需要的条件
选择总和(salary_sept),总和(salary_oct),...:做这样的事情,你需要2个查询,假设工资仅为正。
仅为返回大于零的和的列创建第二个选择。
SQL没有时间机器,对不起。你必须自己做你的工作。
没有“逃跑”。数据库用于存储数据,而不是很好地格式化数据。在应用程序层执行此操作。 – fancyPants
我的意思是忽略查询结果中的那一列 – mpsbhat
是的,我明白这是正确的。我的评论依然存在。如果你不想要它,请不要选择它。就那么简单。 – fancyPants