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

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

Вопрос по функциональности SQL в интербейсе [D7, IB6.x]


Эстет ©   (2007-09-04 16:34:00) 

Ув. мастера! Возник вопрос по поводу того, как в интербейсе извратиться, чтобы получить что-то вроде функции NVL в оракле.
Т.е. напр., имеем запрос

select (field_1 - field_2) as field from table

и если у нас один из филдов есть NULL, то и результат будет NULL. Нужно, чтобы NULL заменялся на дефолтовое значение, напр., на 0.

В оракле это можно написать след. образом:
select (nvl(field_1, 0) - nvl(field_2, 0)) as field from table

Если кто знает как решается вопрос в интербейсе, подскажите, пожалуйста. Спасибо.


Johnmen   (2007-09-04 22:41:00) [1]


> Надеюсь, при переходе с 1.0 траблов не будет :)

Вполне могут быть. Читать про миграцию на ibase.ru


Turbouser   (2007-09-04 20:44:00) [2]

> [6] лолкин   (04.09.07 19:12)

EXECUTE STATEMENT вообще весьма сомнительная штука.


Desdechado   (2007-09-04 19:42:00) [3]

> Там неприятный глюк с EXECUTE STATEMENT
Думаю, автору фиолетово. В 1.0 все равно такого не было.


лолкин   (2007-09-04 19:12:00) [4]

>>Скачал версию 2.0.2.

Выбрось каку. Там неприятный глюк с EXECUTE STATEMENT
возьми 2.0.1 или подожди 2.0.3 (он скоро выйдет)


Эстет   (2007-09-04 17:50:00) [5]

Так и сделал. Скачал версию 2.0.2. Спасибо. Почитал в документации - много новых возможностей. Надеюсь, при переходе с 1.0 траблов не будет :)


Johnmen   (2007-09-04 17:15:00) [6]


> Firebird 1.0

Давно пора освежиться. И использовать turbouser ©   (04.09.07 16:39) [1]


Desdechado   (2007-09-04 16:53:00) [7]

Можно использовать простенькую UDF
{----- заменить null на дробный ноль -----}
{ DECLARE EXTERNAL FUNCTION NullDouble
         DOUBLE PRECISION
         RETURNS DOUBLE PRECISION BY VALUE
         ENTRY_POINT "fn_NullDouble" MODULE_NAME "ib_fv";
}
function fn_NullDouble( var f: Double ): Double; cdecl; export;
begin
 result := f;
end;


Эстет   (2007-09-04 16:50:00) [8]

\firebird\doc\sql.extensions\ - эта папка где? Если в папке с установленным файрбердом, то у меня ее нет :-(. Firebird 1.0


turbouser   (2007-09-04 16:39:00) [9]

coalesce - подробности в папке \firebird\doc\sql.extensions\


Наверх

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