我有一个包含100列的表格。
碰巧我希望查询只显示“value<> 0”的列
因此不应显示val = 0的列。
任何人都可以帮忙解决这个问题。
答案 0 :(得分:1)
您可以进行如下查询:
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。
答案 1 :(得分:1)
您无法调整返回的列数。这是由投影(您的SELECT块)定义的,并且针对表架构评估投影。您应该知道要在投影中返回的列数和类型。
正如之前的用户所提到的,您可以使用函数或case语句来更改列中的值,或者,您可以限制使用WHERE子句返回的行(如果某些值或值是<> 0,例如)。
返回的生成投影表的模式必须是静态的。