У меня есть оператор where, который зависит от идентификатора и основывается на id, который определяется следующим. EX: если ID = 1, оператор where должен быть < = 3 и b между 4 и 7, если ID <> 1 где оператор должен быть < = 4 и b между 5 и 7. Не знаете, как это сделать. Пробовал статью Case
, но не повезло.MIcrosoft SQL Server WHERE/CASE предложения
0
A
ответ
1
Что-то вроде:
where
(id = 1 and a <= 3 and b between 4 and 7) or
(id <> 1 and a <= 4 and b between 5 and 7)
0
В зависимости от ваших требований вы просто должны WHERE
заявления в скобках с OR
:
...
WHERE (ID = 1 AND a <= 3 AND b BETWEEN 4 AND 7)
OR (ID <> 1 AND a<= 4 AND b BETWEEN 5 AND 7)
2
Вот пример таблицы в базе данных TempDb с данными.
-- Just a test
use tempdb;
go
-- Drop table
if object_id('test') > 0
drop table test
go
-- Create table
create table test
(
id int,
a int,
b int
);
-- Add data
insert into test values
(1, 3, 4),
(2, 4, 5),
(1, 4, 4),
(2, 5, 5),
(1, 3, 3),
(2, 4, 4);
-- Full table
select * from test;
Вот решение, использующее оператор CASE.
-- Show the data
select
*
from
test
where
(
case
when id = 1 and a <= 3 and b between 4 and 7 then 1
when id <> 1 and a <= 4 and b between 5 and 7 then 1
else 0
end
) = 1;
+0
большое вам спасибо! – MathLover
+0
Я рад, что могу помочь, мое удовольствие. –
Смежные вопросы
- 1. Microsoft SQL Server Error
- 2. Эмуляция предложения MySQL LIMIT в Microsoft SQL Server 2000
- 3. Microsoft SQL Server не возвращает все при использовании предложения LIKE
- 4. Загрузить SQL SERVER AGENT - Microsoft SQL Server
- 5. SQL Server - Microsoft SQL Server 2005
- 6. Microsoft SQL Server
- 7. Последовательности Microsoft SQL Server
- 8. Сервер Microsoft SQL Server
- 9. Множество, где предложения SQL Server
- 10. Предложения по обслуживанию SQL Server?
- 11. Microsoft SQL Server, Ошибка: 33266
- 12. Случайная строка Microsoft SQL Server
- 13. Microsoft SQL Server, ошибка: 87
- 14. Что делает Microsoft SQL Server?
- 15. Оператор SELECT Microsoft SQL Server
- 16. JQGrid и Microsoft SQL Server
- 17. Отслеживание активности Microsoft SQL Server
- 18. Ajax вызов Microsoft SQL Server
- 19. EMPTY_CLOB() в Microsoft SQL Server
- 20. Microsoft SQL Server 2005 XP_DELETE_FILE
- 21. Microsoft SQL Server только курсор
- 22. Использование памяти Microsoft SQL Server
- 23. Последовательность Microsoft SQL Server 2014
- 24. microsoft sql server поддельное поле
- 25. Microsoft SQL Server - рекурсивное соединение
- 26. Microsoft SQL Server 2005 - DVWA - SQL Injection
- 27. Условные предложения WHERE в SQL Server 2008
- 28. Использование предложения WITH в SQL Server
- 29. SQL Server - Получение противоположности предложения where
- 30. Предложения для графического интерфейса SQL Server?
Пожалуйста, покажите нам свой код! –
Вы можете использовать 'OR' и' WHERE (a.ID = 1 AND a <= 3 AND b > = 4 и b <= 7) ИЛИ (a.id <> 1 AND a <= 4 AND b > = 5 и b <= 7) 'должны работать для вы. – user2989408