Я бы сказал, что второй вариант лучше. Обычно лучше форматировать выходные данные на среднем уровне или уровне представления, а не в базе данных. Таким образом, я хотел бы вернуть нулевые значения на уровень выше кода уровня данных и попросить его решить, что делать с отображением, а не делать выбор в базе данных.
Преобразуя нули в нули, вы указываете для всех систем, которые используют запрос, что ноль равняется пользователю, намеренно вводящему ноль. Если это действительно так, тогда хорошо, используйте Coalesce вместо IsNull и конвертировать нули в нули. Однако, если есть даже самая отдаленная вероятность того, что запрос будет использован повторно и что отсутствие значения может быть обработано иначе, чем запись нуля, я бы возвратил нули на средний уровень и позволил бы ему решить, что с этим делать. .