Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ограничение выборки кол-вом выполненных условий  [new]
touchka
Member

Откуда:
Сообщений: 35
Здравствуйте.
Есть запрос к таблице, ограниченный выполнением, например не менее 3 из 5 условий.
Как это сделать оптимально, не перебирая все возможные варианты.

Думаю в сторону сравнения суммы результатов условий, приведенных к числу, но что то не так, компилятор ругается.
SELECT *
FROM Table
WHERE
(CAST(условие 1 as bit) + CAST(условие 1 as bit) + CAST(условие 1 as bit) + CAST(условие 1 as bit) + CAST(условие 1 as bit))>=3
7 фев 14, 18:58    [15536555]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение выборки кол-вом выполненных условий  [new]
touchka
Member

Откуда:
Сообщений: 35
touchka,
SELECT *
FROM Table
WHERE
(CAST(условие 1 as bit) + CAST(условие 2 as bit) + CAST(условие 3 as bit) + CAST(условие 4 as bit) + CAST(условие 5 as bit))>=3
7 фев 14, 19:00    [15536561]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение выборки кол-вом выполненных условий  [new]
iap
Member

Откуда: Москва
Сообщений: 47084
 CASE WHEN условие1 THEN 1 ELSE 0 END
+CASE WHEN условие2 THEN 1 ELSE 0 END
+.........................................
+CASE WHEN условиеN THEN 1 ELSE 0 END = M
7 фев 14, 20:39    [15536887]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение выборки кол-вом выполненных условий  [new]
touchka
Member

Откуда:
Сообщений: 35
iap, спасибо большое!
8 фев 14, 12:47    [15538934]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить