Как заменить значение NULL в таблице SQL? - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть таблица dbo.People в базе данных, и один из столбцов - Name.Однако в некоторых полях отсутствует имя.Поэтому я пытаюсь заменить пустое поле на No Name.Существует также столбец ID со значениями 1, 2, 3, 4, и т. Д.

Что у меня есть:

SELECT ISNULL(Name, 'No Name') FROM dbo.People;

Затем я хочу сгруппировать и посчитать, сколько раз это имяпроисходит

SELECT COUNT(ID), Name
FROM dbo.People
GROUP BY Name;

Это работает, однако мой результат по-прежнему показывает пустое значение с количеством повторений этого пустого значения, а не No Name.

Ответы [ 3 ]

0 голосов
/ 14 сентября 2018

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

Правильный путь, который я нашел, состоял в том, чтобы объединить их в один:

SELECT COUNT(ID), ISNULL(Name, 'No Name')
FROM dbo.People
GROUP BY Name;
0 голосов
/ 14 сентября 2018

Вы хотите получить только NULL вхождения?

Тогда не нужно слишком усложнять вещи, просто помните, что вы не можете сравнить с отсутствием значения / данных, но вы можете проверить это.

SELECT Count(ID) 
FROM dbo.People 
WHERE Name IS NULL
0 голосов
/ 14 сентября 2018

вариант использования, когда

select sum(case when name='No Name' then 1 else 0 end) as cnt,name from
(
 SELECT coalesce(Name, 'No Name' ) as name
 FROM dbo.People
) t group by name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...