У меня есть результирующий набор, состоящий в основном из столбцов значений. Однако в самом левом столбце содержится текст, который я использую для эффективной маркировки каждой строки. Когда я ROLLUP, значения total, что отлично. Текст в столбце «Нет KS2» обновляется до NULL, который ожидается. Есть ли что-нибудь, что я могу сделать, чтобы заменить NULL текстом, например «Total»?SQL Возможно ли заменить значения в накопителе?
Все NULL в других столбцах должны быть там, и мне не нужно их заменять.
Вот пример моих результатов установить например:
No KS2 6c/D- 6b/D 6a/D+
2a 1 NULL NULL
3c 3 NULL NULL
3b NULL 5 NULL
3a NULL NULL 6
NULL 4 5 6
Вот что я хотел бы сделать:
No KS2 6c/D- 6b/D 6a/D+
2a 1 NULL NULL
3c 3 NULL NULL
3b NULL 5 NULL
3a NULL NULL 6
Total 4 5 6
EDIT:
При создании результатов KS2 столбцов устанавливается с помощью группу я уже заменил значения NULL на «Нет KS2». Пожалуйста, смотрите мой GROUP BY код ниже:
GROUP BY
CASE Name
WHEN 'English' THEN
CASE WHEN [Ks2en] IS NULL OR [Ks2en]='' THEN
'No KS2'
WHEN [Ks2en] IN ('1a','1b','1c') THEN
'1'
ELSE
[Ks2en]
END
WHEN 'Mathematics' THEN
CASE WHEN [Ks2ma] IS NULL OR [Ks2ma]='' THEN
'No KS2'
WHEN [Ks2ma] IN ('1a','1b','1c') THEN
'1'
ELSE
[Ks2ma]
END
ELSE
CASE WHEN [Ks2av] IS NULL OR [Ks2av]='' THEN
'No KS2'
WHEN [Ks2av] IN ('1a','1b','1c') THEN
'1'
ELSE
[Ks2av]
END
END
WITH ROLLUP
EDIT: Это не дубликат, как решение вопроса, что это должно быть дубликатом не решить мою проблему. Я отредактировал код, чтобы объяснить разницу. У меня уже есть оператор case, который заменяет мои значения NULL в столбце KS2 «Нет KS2».
Да, вдоль правильных линий. Однако у меня уже есть аргумент case, который заменяет мои значения NULL в столбце KS2 «Нет KS2». Я выложу свой код GROUP BY. – Matt
Закрепите всю партию в скобках и создайте оператор select, который заменяет NULL. выберите * FROM (<ваш полный запрос>) данные – twoleggedhorse
Относительно вашего редактирования. Это ** ** является дубликатом. Правильный способ замены значений «ROLLUP» заключается в использовании функции «GROUPING». Использование 'ISNULL' или' COALESCE' неправильно применяет общую метку к группам, где значение группировки равно «NULL». Поскольку вы не потрудились поставлять SQL Fiddle, я не буду утруждать себя тем, как применять «GROUPING» к вашей ситуации (код слишком длинный для комментария, и я, конечно, не заинтересован в создании скрипки с нуля) –