2016-03-29 4 views
0

Этот запрос вернет вам 0 записей, если записи не существует в TableA:запроса без записей возвращает нуль для функции SUM

Select strA, strB, intC, floatD, from tableA 

Однако этот запрос возвращает 1 записей со всеми столбцами, как Null.

Select strA, strB, intC, floatD, sum(intC+intD) as sumE, 
from tableA 

Таким образом, чтобы исправить это, я сделал:

Select strA, strB, intC, floatD, sum(intC+intD) as sumE, 
from tableA 
having sumE is not null 

мне было интересно, если есть лучший способ сделать то же самое. Любая встроенная функция MySQL, которая может делать то же самое?

ответ

1

Это потому, что у вас нет GROUP BY. Вы просите MySQL предоставить вам SUM из intC + intD для всей таблицы, поэтому он даст вам результат, несмотря ни на что. Он должен вставить что-то для strA, strB и т. Д., Поэтому он помещает значения NULL.

Например, просто сделайте SELECT SUM(intA) FROM tableA, и вы получите NULL.

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