Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

NVL в Interbase [IB6.x]


Страницы:   1 2

ilandrei ©   (2003-03-13 17:28:00) 

Народ, помогите!
Наверняка такая проблема не у меня одного - но как-то ведь, наверное, решается? Нужно вернуть в SQL-запросе сумму нескольких столбцов. И все бы ничего, но если хотя бы в одном из этих столбцов NULL, то и сумма получится тоже NULL, а это меня не устраивает! В Oracle было бы проще простого - используй NVL, и все дела! А в Interbase что делать?


Dred2k   (2003-03-13 18:04:00) [21]

> Как так ?

Да так. NULL в таблице хоть парадокса, хоть дбф - это 0 для числовых полей. Запрос на ib через SQLLink не охота пробовать... ;)
Предположить можно одно: серверный ib слишком по-философски воспринимает NULL (насчет сложения с ним), либо у автора случайно умножение закралось, либо тогда ой... ;)


Соловьев   (2003-03-13 17:58:00) [22]

частный случай:
select Column1 + Column2 + Column3
from table
where (Column1 is not NULL) and (Column2 is not NULL) and (Column3 is not NULL)
А вот ХП - это через хранимую процедуру в БД.


Johnmen   (2003-03-13 17:58:00) [23]

>Dred2k © (13.03.03 17:55)
>Что-что, select с where.

Неверно подметил, т.к. подумай над SUM(F1+F2) (у автора)...

>...даже bde так не делает. :)

Как так ?



ilandrei   (2003-03-13 17:55:00) [24]

А что такое ХП?

> Соловьев ©

Вы меня неправильно поняли. Мне-то нужно не SUM, а Column1 + Column2 + Column3


Dred2k   (2003-03-13 17:55:00) [25]

Что-что, select с where.
Хотя и не понятно поведение ib - даже bde так не делает. :)


Johnmen   (2003-03-13 17:51:00) [26]

>Dred2k © (13.03.03 17:48)

Что верно подметил ?


Dred2k   (2003-03-13 17:48:00) [27]

2 Johnmen

Коли так, то Соловьев © верно подметил...


Johnmen   (2003-03-13 17:44:00) [28]

>Dred2k © (13.03.03 17:38)

Не-а...


Dred2k   (2003-03-13 17:38:00) [29]

Поиграйся приведением типов в выражении суммирования.
Пусть даже через число(возможно - NULL)->строка->число(нужно получить 0) - может помочь, а на скорость не особо должно повлиять...


Соловьев   (2003-03-13 17:36:00) [30]

select sum(field)
from table
where field is not NULL


Deniz   (2003-03-13 17:36:00) [31]

UDF


Johnmen   (2003-03-13 17:35:00) [32]

UDF


Соловьев   (2003-03-13 17:32:00) [33]

ХП попробуй.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо