powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вот это да!
17 сообщений из 17, страница 1 из 1
Вот это да!
    #32478858
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
SELECT IIF(ISNULL(sum(out_db_ost)), 0 ,sum(out_db_ost)) FROM table1 WHERE  1 = 2  INTO CURSOR tmp


возвращает пустой курсор! Тогда как на SQL-92 совместимом сервере я бы получил курсор с одной записью и каким-то значением (в крайнем случае 0)

Как с этим жить?
...
Рейтинг: 0 / 0
Вот это да!
    #32478904
Не понял, что это за конструкция такая WHERE 1=2 ? Она же никогда не исполнится.
Наверное, все-таки должно быть сравнение полей.
...
Рейтинг: 0 / 0
Вот это да!
    #32478989
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай

Это я для примера заведомо пустой выборки привел :)
...
Рейтинг: 0 / 0
Вот это да!
    #32478998
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Менять мышление... Это особенность диалекта SQL фокса :)
...
Рейтинг: 0 / 0
Вот это да!
    #32479004
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче нужно просто отдельно обработать вариант с reccount() = 0 вот и все :)
...
Рейтинг: 0 / 0
Вот это да!
    #32479009
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати вместо iif isnull есть функция nvl()
...
Рейтинг: 0 / 0
Вот это да!
    #32479020
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crip

Это особенность диалекта SQL фокса :)

Милая такая особенность...

Короче нужно просто отдельно обработать вариант с reccount() = 0 вот и все :)

Ну это я уж и сам сделал :)

PS> Спасибо за nvl()
...
Рейтинг: 0 / 0
Вот это да!
    #32479025
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда как на SQL-92 совместимом сервере я бы получил курсор с одной записью и каким-то значением (в крайнем случае 0)

А MS-SQL-Server вы считаете "SQL-92 совместимым"?

Если, да, то он вам тоже, кстати, вернет пустой набор данных, потому как условие "WHERE 1=2" никогда не выполняется...
...
Рейтинг: 0 / 0
Вот это да!
    #32479095
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qu-qu

Угу! Вы бы хоть попробовали сначало...
...
Рейтинг: 0 / 0
Вот это да!
    #32479122
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что пробовать-то, родное сердце?

может пример скриптика приведешь?

З.Ы. не мешало бы также и по-русски писать научиться ("сначало")
...
Рейтинг: 0 / 0
Вот это да!
    #32479138
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
м-да, вспылил... был не прав...

(не заметил SUM() в тексте запроса)

З.Ы. но насчет русского языка - не отменяется... :-))
...
Рейтинг: 0 / 0
Вот это да!
    #32479146
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qu-qu

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create table tbl (a int)

insert into tbl values( 1 )
insert into tbl values( 2 )

select sum(a) from tbl where  1 = 2 
select isnull(sum(a), 0 ) from tbl where  1 = 2 

drop table tbl


-----------
NULL

(1 row(s) affected)


-----------
0

(1 row(s) affected)



PS>
Ох..ть qu-qu , зато в русском видать силен...
...
Рейтинг: 0 / 0
Вот это да!
    #32479151
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ты еще и "тормоз", к тому же... :-))

(поправился же я, не видел что ли?)
...
Рейтинг: 0 / 0
Вот это да!
    #32479986
karly™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, прекратите брань, вы ведь на форуме FoxPro

2funikovyuri

В фоксе можно обращаться к полям пустой таблицы. Т.е.
Код: plaintext
1.
2.
Create Cursor temp ( f1 I, f2 C( 10 ) )
?temp.f1 &&  0 
?Len(temp.f2) &&  10 

Может быть, это чуть-чуть смягчит последствия "милой особенности" ;-)
...
Рейтинг: 0 / 0
Вот это да!
    #32480545
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фокс все-таки наследуют XBase , поэтому такое поведение является для него вполне логичным. Надо просто привыкнуть
...
Рейтинг: 0 / 0
Вот это да!
    #32480770
oleg_km
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интересно, если сделать:
SELECT COUNT(*) FROM Table WHERE 1=2
то будет одна строка с нулем, а если:
SELECT COUNT(*) , SUM(f) FROM Table WHERE 1=2
то все равно будет пустой курсор

Вот такие простые вещи
...
Рейтинг: 0 / 0
Вот это да!
    #32481452
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
karly™

В фоксе можно обращаться к полям пустой таблицы

Спасибо, но это позволит получать значения "поумолчанию" - а в случае с SUM() - хотелось бы NULL :)

oleg_km

Ага - в том то и дело что в зависимости от вида агрегата - разный результат
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вот это да!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]