![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
NVL в Interbase [IB6.x]
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]ХП попробуй.