2015-06-25 3 views
1

В приведенном ниже ответе возвращаются нулевые строки на выходе. Мы можем избежать пустых строк, если у меня есть два отдельных запроса. Но есть ли лучший способ избежать нулевых строк?Удалить нулевые значения из результатов SQL

SELECT date_part('h',convert_timezone('UTC+05:30', value)) as h , 
     count (CASE WHEN cond1 THEN 1 else null END) AS "result1", 
     count (CASE WHEN cond2 THEN 1 else null END) AS "result2" 
FROM table_name 
WHERE conds 
GROUP BY cols 

Expected Output: 
h | result1 | result2 

1 | 23 | 51 
2 | 45 | 100 

Actual Output: 
h | result1 | result2 

    |  0 | 0 
    |  0 | 0        
1 | 23 | 51 
+1

Вы пытались добавить 'has h is NULL'? – Beri

ответ

1

Если вы не хотите еще один запрос, то попробуйте этот подход:

SELECT date_part('h',convert_timezone('UTC+05:30', value)) as h , 
count (CASE WHEN cond1 THEN 1 else null END) AS "result1", 
count (CASE WHEN cond2 THEN 1 else null END) AS "result2" 
FROM table_name 
WHERE conds 
GROUP BY cols 
HAVING date_part('h',convert_timezone('UTC+05:30', value)) is not null 

В этом примере в качестве альтернативы может расширить свои, где условия для включения и тот же тест на не нулевой и отказаться от использования Предложение.

Смежные вопросы