SQL ОСТАВИЛ возврат СОЕДИНЕНИЯ 0, а не ПУСТОЙ УКАЗАТЕЛЬ

:q!

Хотелось бы знать, что до того, как я впервые запустил vi

23
задан Germstorm 20 February 2014 в 16:08
поделиться

5 ответов

Используйте:

ISNULL(count(*), 0)
16
ответ дан 29 November 2019 в 01:14
поделиться

ISNULL (nullable, value_if_null) для MsSQL, COALESCE (nullable1, nullable2, ..., value_if_null) для MySQL.

Изменить: Как мне сказали, COALESCE работает для обоих, поэтому я бы выбрал его для замены столбцов NULL .

Теперь я думаю, что COUNT () Значение ing NULL возвращает 0 и в MySQL, поэтому я согласен с Рашми. Не могли бы вы показать нам запрос и желаемый результат?

11
ответ дан 29 November 2019 в 01:14
поделиться

Я не уверен, понял ли я вашу точную проблему, но в sqlserver на левое соединение, вы получите счет как 0, если ваш запрос будет примерно таким:

select t1.id, count(t2.id)
from table1 t1
left outer join table2 t2
on t1.id = t2.id
group by t1.id
11
ответ дан 29 November 2019 в 01:14
поделиться

Посмотрите на IsNull в SQL Server и Sybase . Используйте NVL в Oracle.

4
ответ дан 29 November 2019 в 01:14
поделиться

COALESCE более кросс-совместимо, чем ISNULL или NVL (работает с MSSQL, Oracle, MySQL, Derby и др.). Но я не уверен в различиях в производительности.

4
ответ дан 29 November 2019 в 01:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: