Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сравнение с NULL 
V
    Опции темы
DVS83
Дата 5.1.2009, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 29.1.2008

Репутация: нет
Всего: нет



пишу запрос 
Код

select * from sotrudniki s, left join oplata o
 on s.kod_ul=o.kod_ul 
 and s,dom=o.dom
 and s.kv=o.kv 

поле kv может принимать значение null, в результате чего соответствующие записи из таблицы oplata не выбираются. Подскажите как можно решить эту проблему?
программирую в firebird 2.0
PM MAIL   Вверх
Akella
Дата 5.1.2009, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Код

select COALESCE(a.price, 0) from apart a where COALESCE(a.price, 0) > 0


Добавлено через 51 секунду
Здесь, если в a.price будет (null), то функция COALESCE вернёт 0

Добавлено через 1 минуту и 51 секунду
Код

select * from sotrudniki s, left join oplata o
 on s.kod_ul=o.kod_ul 
 and s,dom=o.dom
 and s.kv=COALESCE (o.kv, 0) 

--или

select * from sotrudniki s, left join oplata o
 on s.kod_ul=o.kod_ul 
 and s,dom=o.dom
 and s.kv=COALESCE (o.kv, -1) 


Добавлено через 4 минуты и 11 секунд
http://www.firebirdsql.su/doku.php?id=coalesce&s[]=coalesce
PM MAIL   Вверх
DVS83
Дата 5.1.2009, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 29.1.2008

Репутация: нет
Всего: нет



пробовал уже использовать coalesce, почему то все равно там где поле kv=NULL записи из таблицы oplata не выбираются. поле kv может принимать значение null в обеих таблицах
Пробовал уже и такой вариант

Код

select * from sotrudniki s, left join oplata o
 on s.kod_ul=o.kod_ul 
 and s,dom=o.dom
 and COALESCE(s.kv,-1)=COALESCE (o.kv, -1) 


может, что не так делаю?
PM MAIL   Вверх
Akella
Дата 5.1.2009, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(DVS83 @  5.1.2009,  14:50 Найти цитируемый пост)
там где поле kv=NULL записи из таблицы oplata не выбираются.

а должны выбираться?

Добавлено через 1 минуту и 34 секунды
может
Код

select * from sotrudniki s, left join oplata o
 on s.kod_ul=o.kod_ul 
 and s,dom=o.dom
 and ((s.kv=o.kv) or (o.kv is null))

PM MAIL   Вверх
DVS83
Дата 5.1.2009, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 29.1.2008

Репутация: нет
Всего: нет



Цитата

а должны выбираться?

конечно

Только досмотрел поле kv в таблице sotrudniki принимает значение отличное от null (отображается только пустое поле) , тип поля char.
Вот это меня спасло:
Код

select * from sotrudniki s, left join oplata o
 on s.kod_ul=o.kod_ul 
 and s,dom=o.dom
 and ((s.kv=o.kv) or (o.kv = '  '))


пасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0785 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.