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

Откуда:
Сообщений: 24
Всем привет!
Задача следующая!

Есть таблица -

MainTable
(
Information varchar(max),
interval_A int,
interval_B int
)

В этой табличке 10000-50000 строк.
Входные параметры у меня интервалы....допустим......(20 - 50) и (100-600)
первые параметры ограничивают Interval_A вторые Interval_B

Задача 1.
Вывести все строки которые попадают в заданные параметры

select * from MainTable
where ( interval_A BETWEEN 20 and 50 and interval_B BETWEEN 100 and 600)

тут всё работает...

Задача 2.
Вывести все строки которые не попадают в интервал
Вот тут и вся проблема, делал так: -

select * from MainTable
where ( interval_A NOT BETWEEN 20 and 50 and interval_B NOT BETWEEN 100 and 600)

Так не работает не могу понять почему, но выводит меньшее кол-во записей (сейчас разбираюсь почему)

Может есть способ более хитрый и оптимальный ... Спасибо!!!!
15 июл 13, 06:56    [14564953]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос....between or not between  [new]
aleks2
Guest
Патаму, что надо

where ( interval_A NOT BETWEEN 20 and 50 OR interval_B NOT BETWEEN 100 and 600)
15 июл 13, 07:28    [14564963]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос....between or not between  [new]
ackidZS
Member

Откуда:
Сообщений: 24
ох ёжики.....
15 июл 13, 07:42    [14564982]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос....between or not between  [new]
iap
Member

Откуда: Москва
Сообщений: 47083
aleks2
Патаму, что надо

where ( interval_A NOT BETWEEN 20 and 50 OR interval_B NOT BETWEEN 100 and 600)
А почему так надо?
Откуда Вы знаете, что надо?
Разве автор формулирует не на птичьем языке?
15 июл 13, 09:22    [14565199]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос....between or not between  [new]
aleks2
Guest
iap
Откуда Вы знаете, что надо?
Разве автор формулирует не на птичьем языке?


Патаму, что ворона вороне глаз не выклюет.
Ну и хрустальный шар, апять же...
15 июл 13, 10:05    [14565436]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос....between or not between  [new]
ackidZS
Member

Откуда:
Сообщений: 24
iap,
как смог описать так описал...чё начинаете... то ...
на птичьем не на птичьем....мы тут не литераторы....
15 июл 13, 13:52    [14567426]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос....between or not between  [new]
iap
Member

Откуда: Москва
Сообщений: 47083
ackidZS
iap,
как смог описать так описал...чё начинаете... то ...
на птичьем не на птичьем....мы тут не литераторы....
Вместо того, чтобы огрызаться, перевели бы на русский язык вот это:
ackidZS
Задача 2.
Вывести все строки которые не попадают в интервал
Это в какой же интервал из двух?
Или в оба?
Я уж молчу о том, что интервалом Вы назвали одно целое число...
15 июл 13, 13:59    [14567485]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос....between or not between  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
iap
Откуда Вы знаете, что надо?

Патамушта
ackidZS
Задача 1.
Вывести все строки которые попадают в заданные параметры

select * from MainTable
where ( interval_A BETWEEN 20 and 50 and interval_B BETWEEN 100 and 600)

тут всё работает...

Задача 2.
Вывести все строки которые не попадают в интервал
скорее всего означает
select * from MainTable
where NOT( interval_A BETWEEN 20 and 50 and interval_B BETWEEN 100 and 600)
ну а дальше дело нежитейской логики ;-)
15 июл 13, 14:15    [14567623]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос....between or not between  [new]
iap
Member

Откуда: Москва
Сообщений: 47083
Cygapb-007
iap
Откуда Вы знаете, что надо?

Патамушта
ackidZS
Задача 1.
Вывести все строки которые попадают в заданные параметры

select * from MainTable
where ( interval_A BETWEEN 20 and 50 and interval_B BETWEEN 100 and 600)

тут всё работает...

Задача 2.
Вывести все строки которые не попадают в интервал
скорее всего означает
select * from MainTable
where NOT( interval_A BETWEEN 20 and 50 and interval_B BETWEEN 100 and 600)

ну а дальше дело нежитейской логики ;-)
Ключевые слова - "скорее всего"
15 июл 13, 14:22    [14567686]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос....between or not between  [new]
ackidZS
Member

Откуда:
Сообщений: 24
Ребят я даже не думал огрызаться...
всё правильно поняли....
интервал - (1-10) -> разве не понятно что от 1 до 10....
16 июл 13, 05:16    [14570805]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить