1. pm74 123 22.05.19 08:13 Сейчас в теме

МАКС(isnull(поле,0)) или isnull(МАКС(поле),0) ?

какой вариант правильнее 1 или 2
Вознаграждение за ответ
Показать полностью
Найденные решения
8. SlavaKron 22.05.19 08:46 Сейчас в теме +0.5 $m
могут быть разные результаты:
ВЫБРАТЬ
	МАКСИМУМ(ЕСТЬNULL(ВложенныйЗапрос.Поле, 0)) КАК Поле
ИЗ
	(ВЫБРАТЬ
		-2 КАК Поле
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		-1
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		NULL) КАК ВложенныйЗапрос
Показать

Даст 0
ВЫБРАТЬ
	ЕСТЬNULL(МАКСИМУМ(ВложенныйЗапрос.Поле), 0) КАК Поле
ИЗ
	(ВЫБРАТЬ
		-2 КАК Поле
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		-1
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		NULL) КАК ВложенныйЗапрос
Показать

Даст -1
dhurricane; pm74; +2 Ответить
Остальные ответы
Избранное Подписка Сортировка: Древо
4. ksen 22.05.19 08:39 Сейчас в теме
(1)ни 1 ни 2, в 1 случае проверка на макс 1 числа, во втором выбор максимума из 0 и переменной в который судя по контексту может лежать null
Макс(isnull(поле,0),0)
11. ZergKRSK 126 22.05.19 08:55 Сейчас в теме
(1) оба варианта имеют права на жизнь (не считая того что Макс там для красоты), всё зависит от задачи.
13. triviumfan 10 22.05.19 09:10 Сейчас в теме
(1) 2й вариант бессмысленен, т.к. isnull там лишнее.
14. dhurricane 22.05.19 09:15 Сейчас в теме
(13)
isnull там лишнее
Не всегда. Агрегатная функция МАКСИМУМ помимо прочего может применяться к таблице, где вовсе нет записей. В таком случае ее результатом будет NULL. Здесь-то и может пригодиться функция ISNULL.
triviumfan; +1 Ответить
2. acanta 56 22.05.19 08:33 Сейчас в теме
7. pm74 123 22.05.19 08:43 Сейчас в теме
(2) я до сегодня и не задумывался
3. ZergKRSK 126 22.05.19 08:37 Сейчас в теме
Максимум из одного значения? И какой смысл?
5. pm74 123 22.05.19 08:41 Сейчас в теме
(3) где я сказал про одно число? я говорю про синтаксис
6. ksen 22.05.19 08:42 Сейчас в теме
(5)Где вы говорили про синтаксис? оба варианта неверные. передается 1 переменная туда где ожидаются как минимум 2
9. pm74 123 22.05.19 08:48 Сейчас в теме
(6)" isnull" как бы подразумевает запрос .
10. ksen 22.05.19 08:51 Сейчас в теме
(9)Ничего это не подразумевает кроме того что в переменной может лежать null и его надо обработать, с таким же успехом там может лежать значение которое возвращает какая-то функция.
ZergKRSK; +1 Ответить
8. SlavaKron 22.05.19 08:46 Сейчас в теме +0.5 $m
могут быть разные результаты:
ВЫБРАТЬ
	МАКСИМУМ(ЕСТЬNULL(ВложенныйЗапрос.Поле, 0)) КАК Поле
ИЗ
	(ВЫБРАТЬ
		-2 КАК Поле
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		-1
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		NULL) КАК ВложенныйЗапрос
Показать

Даст 0
ВЫБРАТЬ
	ЕСТЬNULL(МАКСИМУМ(ВложенныйЗапрос.Поле), 0) КАК Поле
ИЗ
	(ВЫБРАТЬ
		-2 КАК Поле
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		-1
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		NULL) КАК ВложенныйЗапрос
Показать

Даст -1
dhurricane; pm74; +2 Ответить
12. triviumfan 10 22.05.19 09:08 Сейчас в теме +0.5 $m
(8) Потому что МАКСИМУМ игнорирует NULL.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Ижевск
зарплата от 70 000 руб. до 94 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата до 120 000 руб.
Полный день

Программист 1С
Санкт-Петербург
Полный день

Консультант 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день