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

1. pm74 199 22.05.19 08:13 Сейчас в теме
какой вариант правильнее 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 129 22.05.19 08:55 Сейчас в теме
(1) оба варианта имеют права на жизнь (не считая того что Макс там для красоты), всё зависит от задачи.
13. triviumfan 92 22.05.19 09:10 Сейчас в теме
(1) 2й вариант бессмысленен, т.к. isnull там лишнее.
14. dhurricane 22.05.19 09:15 Сейчас в теме
(13)
isnull там лишнее
Не всегда. Агрегатная функция МАКСИМУМ помимо прочего может применяться к таблице, где вовсе нет записей. В таком случае ее результатом будет NULL. Здесь-то и может пригодиться функция ISNULL.
triviumfan; +1 Ответить
2. acanta 22.05.19 08:33 Сейчас в теме
7. pm74 199 22.05.19 08:43 Сейчас в теме
(2) я до сегодня и не задумывался
3. ZergKRSK 129 22.05.19 08:37 Сейчас в теме
Максимум из одного значения? И какой смысл?
5. pm74 199 22.05.19 08:41 Сейчас в теме
(3) где я сказал про одно число? я говорю про синтаксис
6. ksen 22.05.19 08:42 Сейчас в теме
(5)Где вы говорили про синтаксис? оба варианта неверные. передается 1 переменная туда где ожидаются как минимум 2
9. pm74 199 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 92 22.05.19 09:08 Сейчас в теме +0.5 $m
(8) Потому что МАКСИМУМ игнорирует NULL.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

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

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

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)