|
Как правильно работать с NULL при возврате МАКСИМУМ | ☑ | ||
---|---|---|---|---|
0
slitov
26.09.17
✎
15:50
|
Добрый день коллеги, тут параллельно готовлюсь к сертификации на спеца, по основной работе необходимо написать функцию, которая возвращает либо число, либо 0. Но если в запросе использовать МАКСИМУМ, тогда ЕСТЬNULL(..., ...) не отрабатывает. Как правильно обработать данные в таком запросе:
1. Положить запрос во временную таблицу и во втором запросе проверить на NULL 2. Или далее в условии если произвести сравнение ВыборкаДетальныеЗаписи.НомерПаллеты = NULL (проверил, возвращает истину) Насколько я знаю, NULL нельзя сравнивать. Подскажите как лучше поступить, вдруг на экзамене придется делать такой запрос. |
|||
1
Ёпрст
26.09.17
✎
15:53
|
(0) дык, там null-а никогда не будет. Какой смысл пихать туда ЕстьNULL ?
|
|||
2
slitov
26.09.17
✎
15:54
|
(1) Ну эт понятно, как правильно тогда выполнить то?
|
|||
3
Ёпрст
26.09.17
✎
15:56
|
(2) НомерПаллеты, тип Число ? Составной тип ?
|
|||
4
Ёпрст
26.09.17
✎
15:57
|
если число, то просто Максимум(НомерПаллеты) как НомерПаллеты.
усё |
|||
5
slitov
26.09.17
✎
15:57
|
Номер это число
|
|||
6
Филиал-msk
26.09.17
✎
15:58
|
(1) Будет, если выборка пустая
|
|||
7
Филиал-msk
26.09.17
✎
15:58
|
В смысле вся колонка, не аргумент максимума
|
|||
8
slitov
26.09.17
✎
15:59
|
(4) Долее мне надо вернуть значение 0 из функции, как правильно обработать результат? Не раз слышал, что NULL сравнивать нельзя.
|
|||
9
Ёпрст
26.09.17
✎
16:00
|
(8)
Выборка = Запрос.Выполнить().Выбрать(): Если Выборка.Следующий() Возврат Выборка.НомерПалетты;КонецЕсли; Возврат 0; |
|||
10
slitov
26.09.17
✎
16:03
|
(6) Нифига вот что имею:
РезультатЗапроса.Пустой() Ложь Булево (9) Так в выборке есть одно значение, которое NULL, тогда выборка NULL и вернет ((( |
|||
11
Ёпрст
26.09.17
✎
16:05
|
(10)
да ё Возврат ?(ЗначениеЗаполнено(Выборка.НомерПалетты,Выборка.НомерПалетты,0); |
|||
12
Филиал-msk
26.09.17
✎
16:06
|
(10) ЕСТЬNULL(МАКСИМУМ(яШтрихКодыПаллет.НомерПаллеты), 0)
|
|||
13
Филиал-msk
26.09.17
✎
16:07
|
У тебя под условия отбора не попадает ни одна строка, поэтому максимум на пустой выборке возвращает тебе null
|
|||
14
mehfk
26.09.17
✎
16:11
|
(0) Убери агрегатную функцию и сделай упорядочить по НомерПаллеты убыв
|
|||
15
mehfk
26.09.17
✎
16:12
|
+ первые 1
|
|||
16
slitov
26.09.17
✎
16:16
|
(11) Спасибо, мне кажется так правильней всего.
(12) Хотя и этот вариант рабочий (14) И это тоже хороший вариант Совсем запутался, какой вариант из всех оптимальнее ))) |
|||
17
Cyberhawk
26.09.17
✎
16:27
|
+(12)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |