在MySQL中,如果该列中的所有行都不为空,我如何才能选择列

时间:2016-02-19 00:06:10

标签: mysql sql

有时会有一些特定输出的列,其中特定列中的行都为空。这将根据具体查询而有所不同,这些列有时确实在某些或所有行中都有varchar数据 - 因此我需要一种动态方法。如果列中的所有值都为空,则用户不需要知道所有行值都为空,我只是不希望此列在选择中出现。< / p>

据我所知,你不能真正查询整个列,只是基于每行?使用一些聚合数据测试空计数?

2 个答案:

答案 0 :(得分:1)

对列的简单计数将为您提供列中非空值的数量:

SELECT COUNT(col) FROM table)

因此,您感兴趣的是上面的结果是0,意味着0个元素不是空值,换句话说,所有元素都是空的。

然后,根据您的行为,您可以将上述查询与IF或CASE语句结合使用。据我所知你不能说选择列,你需要有一个回退,意味着如果...条件选择该列的相应值,否则使用此回退值(例如0,NULL,空VARCHAR等。 )

答案 1 :(得分:1)

任何给定查询的结果中包含的列/字段必须是静态的。您可以在存储过程中模拟类似的行为,但是许多可以使用它们的框架(例如Crystal Reports)在遇到此类行为时会出现问题。将这样的演示问题保留在演示文稿层中通常是一种更好的做法。 (UI代码)。