![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
![]()
Всем привет.
Допустим, в таблице 4 поля a, b, c, d их значения 2, NULL, 2, 2 Делаем запрос select sum(a+(b*c)+d) from Table Результат NULL. Почему? Понятно, что число, умноженное на 0 даст 0, а число, умноженное на NULL даст NULL. Т.е. (b * c) = NULL. Но ведь 2 + NULL + 2 в принципе должно выдать 4. Почему запрос выдает пустоту? |
![]() |
![]() |
![]() |
#2 | |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 216
|
![]() Цитата:
Так же как и при умножении, в любых других арифметических операциях (и не только) сервер, встречая NULL в выражении "не знает" что с ним делать. Он не уполномочен самостоятельно преобразовывать NULL в ноль. Отсюда и результат выражения - NULL. "Неизвестные значения" (NULL) требуют отдельной обработки. |
|
![]() |
![]() |
![]() |
#3 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Да, на NULL нуна проверки ставить... Иначе любое выражение где поучавствует NULL станет само NULLём
I'm learning to live...
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 07.08.2007
Сообщений: 154
|
![]()
Причем NULL<>NULL
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
![]()
Понятно. Я так и думал.
Просто, два часа искал ошибку в программе пока не нашел, что значение одной из ячеек таблицы стоит NULL вместо 0. Во всех таблицах в числовых полях в структуре установил Default = 0. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 13.10.2010
Сообщений: 96
|
![]()
В Oracle есть функция NVL. Очень удобна для таких случаев
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (Стив Макконнелл)
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проблемка с соксами при idhttp запросах | maloy_ya | Работа с сетью в Delphi | 3 | 29.09.2010 18:33 |
Пустые поля в запросах | PetroPorsh | Microsoft Office Access | 1 | 16.10.2008 16:56 |
Обработка значения Null в sql запросе | KeyDok | БД в Delphi | 6 | 13.07.2008 12:03 |
MS SQL server 2000, ADO. Добавленые записи не отображаются при последующих запросах. | _victor | БД в Delphi | 1 | 17.06.2007 13:33 |
Возможна ли рекурсия в запросах | eremin | БД в Delphi | 0 | 23.05.2007 15:54 |