|
Простой запрос - неожиданный результат
| ☑ |
0
Sj
24.03.14
✎
08:54
|
Доброе время суток!
Запрос, ну, проще некуда.
ВЫБРАТЬ СУММА(1) КАК Поле1 ГДЕ ЛОЖЬ
Вопрос: почему результат запроса не пустой?
|
|
1
shuhard
24.03.14
✎
09:08
|
ВЫБРАТЬ 1 КАК Бред ГДЕ Истина=ЛОЖЬ
|
|
2
ДенисЧ
24.03.14
✎
09:08
|
а пчоему он должен быть пустым?
|
|
3
Нерезидент РФ
24.03.14
✎
09:22
|
кстати да. дело в СУММА. если
ВЫБРАТЬ
1 КАК Поле1
ГДЕ
ЛОЖЬ
то результат пустой
ВЫБРАТЬ
СУММА(1) КАК Поле1
ГДЕ
ЛОЖЬ
здесь есть строчка в запросе
|
|
4
Sj
24.03.14
✎
09:34
|
(2) потому что Где Ложь. На фоксе - select sum(1) into curs t1 from table1 where 0 = 1 - нет данных.
|
|
5
azt-yur
24.03.14
✎
09:35
|
Условие ГДЕ накладывается на первоначальные данные, затем производится суммирование. Поэтому и выходит, что сумма пустого множества NULL.
В данном случае вместо "ГДЕ" стоит использовать "ИМЕЮЩИЕ"
|
|
6
Ненавижу 1С
гуру
24.03.14
✎
09:36
|
если нет секции СГРУППИРОВАТЬ ПО, то результат гарантированно не пустой
|
|
7
Нерезидент РФ
24.03.14
✎
09:37
|
(6) даже с "СГРУППИРОВАТЬ " результат будет не пустой. прав (5)
|
|
8
Нерезидент РФ
24.03.14
✎
09:37
|
век живи век учись. не знал
|
|
9
Sj
24.03.14
✎
09:47
|
По мне так: сумма пустых множеств = пустому множеству.
Если (ВЫБРАТЬ 1 КАК Поле1 ГДЕ Ложь) - пустое множество, которое не содержит ни одной строки, то и сумма таких множеств должно так же не содержать ни одной строки.
|
|
10
hhhh
24.03.14
✎
09:49
|
(9) не, сумма всегда есть. Это факт, от этого никуда не деться.
|
|
11
azt-yur
24.03.14
✎
09:59
|
(9) подобный запрос в SQL выдает такой же результат. Так что это особенность выполнения запросов
|
|
12
Sj
24.03.14
✎
10:14
|
(11) да, спасибо!
|
|
13
Ненавижу 1С
гуру
24.03.14
✎
10:15
|
(7) не ври
|
|