powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / null - это очень большое число, что ли?
2 сообщений из 2, страница 1 из 1
null - это очень большое число, что ли?
    #39410056
Иван88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня.

Программирую под Android и вот уже около недели застрял над тем, чтобы найти самый дорогой заказ в базе.

Есть вот такая таблица. Работаем исключительно с полем _itemPrice. Как видите, в последней записи это поле пустое. Так понимаю null?

Проблема долгое время заключалась в том, что при попытке найти максимум в поле _itemPrice и с условием, что одно из этих значений не было введено пользователем, получаем 0.0. Что касается нуля, то дело тут, скорее всего, c Android. Но самое главное, что сама база по запросу
Код: sql
1.
SELECT MAX (_itemPrice) FROM deliveries;

возвращает пустоту. Также я пробовал играться с IFNULL -- без результатов.

Случайным образом сегодня попробовал выполнить
Код: sql
1.
SELECT _itemPrice FROM deliveries WHERE _itemPrice < 99999999999999 ORDER BY _itemPrice DESC LIMIT 1;

, и всё получилось.

Сейчас беспокоит то, что это костыль.

Может, пожалуйста, кто-то:
1) объяснить как так получается, что null оказывается максимумом в примитивном запросе?
2) предложить решение поэлегантнее.


Буду очень признателен. Спасибо, что прочитали.

P.S. Решая аналогичную задачу, но только находя самый дешёвый заказ, всё работало отлично. Возможно помогла конструкция
Код: sql
1.
SELECT MIN (NULLIF (
...
Рейтинг: 0 / 0
null - это очень большое число, что ли?
    #39410104
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Иван88,
1. Не null, - пустая строка.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT _id, 
  case 
    when _itemPrice is null then -1 
    when _itemPrice = '' then -10 
    else _itemPrice 
  end _ip 
FROM deliveries;

SELECT '' > 99999999999999;


2. Заменить пустую строку на null
Код: sql
1.
2.
3.
UPDATE deliveries SET _itemPrice = null WHERE _itemPrice = '';

SELECT MIN(_itemPrice), MAX(_itemPrice) FROM deliveries; 
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / null - это очень большое число, что ли?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]