我有一个包含100列的表。
碰巧我希望查询只显示具有"value <> 0“的列
因此,不应该显示val =0的列。
有人能帮上忙吗?
发布于 2014-02-21 00:51:02
您可以使用如下所示的查询:
SELECT FLOOR(SUM(IF(column1 IN (0),0,1))/COUNT(*)),FLOOR(SUM(IF(column2 IN (0),0,1))/COUNT(*)),...,FLOOR(SUM(IF(column100 IN (0),0,1))/COUNT(*)) FROM table_name
如果该列包含0,这将为您提供一个列值为0的行,如果该列不包含0,则为1。
发布于 2014-02-21 01:06:06
不能调整返回的列数。这是由一个投影(您的SELECT块)定义的,一个投影是根据表模式进行计算的。您应该知道希望在投影中返回的列数和类型。
正如前面的用户所提到的,您可以使用函数或case语句来更改列中的值,或者,您也可以限制使用WHERE子句返回的行(例如,如果一些值或多个值为<> 0 )。
不过,返回的生成的投影表的模式必须是静态的。
https://stackoverflow.com/questions/21913672
复制相似问题