Оптимизация sqlite-запроса - PullRequest
0 голосов
/ 28 февраля 2012

Расширение вопроса Самый быстрый способ найти ненулевое поле в sqlite

У меня есть структура таблицы

CREATE TABLE IF NOT EXISTS [app_status](
[id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL ,
[status] TEXT DEFAULT NULL,
[type] INTEGER
)  

Где значение типа может быть один или два.Сначала я хочу проверить, нет ли строки, в которой тип равен 1 и имеет статус не ноль.

Если не получится, я хочу проверить, нет ли строки с типом, равным 2. Для этого я написал два SQL-запроса.

SELECT 1 
FROM [app_status]
WHERE [status] IS NOT NULL
AND [type]=1

, если он не возвращает ничегоСтрока I запускает

SELECT 2 
FROM [app_status]
WHERE [status] IS NOT NULL
AND [type]=2

Есть ли способ объединить эти условия в одном запросе.Возвращает единицу, если любая строка имеет ненулевой статус, и введите 1, если не возвращает 2, любая строка, не имеет нулевой статус, тип 2. В противном случае возвращается 0?

1 Ответ

2 голосов
/ 28 февраля 2012

Почему бы и нет:

SELECT COALESCE(min(type), 0)
  FROM app_status
 WHERE status IS NOT NULL
   AND type IN (1,2)

?

Вам нужны все дубликаты?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...