Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Andrey Shepel Member Откуда: Сообщений: 3 |
Всем привет! Помогите, плиз, написать небольшой запрос: Есть таблица: Field1 Field2 Field3 Field4 12 0 12 54 23 7 444 32 43 55 5 6445 12 435 43534 4 122 2 444 35 Есть список условий: 1. Field1>Field2 2. Field3=444 3. Field4>32 Необходимо написать запрос, который будет выбирать только те строки, число сработавших условий для которых (не одновременно) равно 2. В результате нужно получить только первые 2 строки. Заранее спасибо за помощь |
23 июн 17, 10:41 [20585459] Ответить | Цитировать Сообщить модератору |
Cammomile Member Откуда: Сообщений: 1214 |
SELECT * FROM ( SELECT ... Condition1 = CASE WHEN ... THEN 1 ELSE 0 , Condition2 = CASE WHEN ... THEN 1 ELSE 0 , Condition3 = CASE WHEN ... THEN 1 ELSE 0 FROM ... ) X WHERE Condition1 + Condition2 + Condition3 = |
23 июн 17, 10:45 [20585467] Ответить | Цитировать Сообщить модератору |
Andrey Shepel Member Откуда: Сообщений: 3 |
Cammomile, Select * From (Select * Condition1=Case When Field1>Field2 Then 1 Else 0) ,Condition2=Case When Field3=444 Then 1 Else 0 ,Condition3=Case When Field4>32Then 1 Else 0 from TableName) Where Condition1 + Condition2 + Condition3=2 Спасибо. Как-то так? |
23 июн 17, 11:03 [20585505] Ответить | Цитировать Сообщить модератору |
Akina Member Откуда: Зеленоград, Москва, Россия Сообщений: 20974 |
|
||
23 июн 17, 11:17 [20585548] Ответить | Цитировать Сообщить модератору |
Andrey Shepel Member Откуда: Сообщений: 3 |
Akina, Спасибо большое. В он-лайн эмуляторе SQL мне пишет: Every derived table must have its own alias. Я так понял, что вложенный запрос надо как-то назвать как отдельную таблицу? |
23 июн 17, 11:24 [20585571] Ответить | Цитировать Сообщить модератору |
Minamoto Member Откуда: Москва Сообщений: 1162 |
Andrey Shepel, да.Select * From (Select * Condition1=Case When Field1>Field2 Then 1 Else 0 ,Condition2=Case When Field3=444 Then 1 Else 0 ,Condition3=Case When Field4>32Then 1 Else 0 from TableName) as TableName Where Condition1 + Condition2 + Condition3=2 |
23 июн 17, 11:25 [20585575] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
Andrey Shepel, алиас просит, запрос покажите |
23 июн 17, 11:25 [20585576] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |