Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 NOT в зависимости от условия  [new]
us!
Guest
есть
@x int

если @x=d

select ...... from ввв where yy not in (select......)

если @x=f

select ...... from ввв where yy in (select......)


как сделать чтоб это было одним селектом в зависимости от @x?
1 дек 09, 21:09    [8005104]     Ответить | Цитировать Сообщить модератору
 Re: NOT в зависимости от условия  [new]
iljy
Member

Откуда:
Сообщений: 8711
us!,

не надо это делать одним селектом. Можно, но громоздко, и ни один индекс работать на этом безобразии не будет. Делайте через if ... else
1 дек 09, 21:12    [8005114]     Ответить | Цитировать Сообщить модератору
 Re: NOT в зависимости от условия  [new]
us!
Guest
этот селект часть другого селекта и if здесь не катит
можно сделать глобальный if
и в нем написать два селекта, оба в полтора экрана , которые будут отличаться только наличием или отсутствием not, не очень читабельно и красиво
1 дек 09, 21:18    [8005130]     Ответить | Цитировать Сообщить модератору
 Re: NOT в зависимости от условия  [new]
GlebZ
Member

Откуда: USA
Сообщений: 284
us!
этот селект часть другого селекта и if здесь не катит
можно сделать глобальный if
и в нем написать два селекта, оба в полтора экрана , которые будут отличаться только наличием или отсутствием not, не очень читабельно и красиво

Делов-то - полтора экрана...
Зато работать быстрее будет
1 дек 09, 21:21    [8005142]     Ответить | Цитировать Сообщить модератору
 Re: NOT в зависимости от условия  [new]
us!
Guest
ну хотся....
насколько медленнее? в чем пройгрыш?
и хотса вариант посмотреть..
1 дек 09, 21:24    [8005156]     Ответить | Цитировать Сообщить модератору
 Re: NOT в зависимости от условия  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
select ...... from ввв where @x=d and yy not in (select......)
union all
select ...... from ввв where @x=f and yy in (select......)
надеюсь, подзапрос ни в одной строке не возвращает NULL?
Надёжнее EXISTS/NOT EXISTS

Непонятно также, что такое d и f.
1 дек 09, 21:26    [8005166]     Ответить | Цитировать Сообщить модератору
 Re: NOT в зависимости от условия  [new]
us!
Guest
надеюсь, подзапрос ни в одной строке не возвращает NULL? --- никогда

Надёжнее EXISTS/NOT EXISTS --- там чисто для вопроса нарисовано

Непонятно также, что такое d и f. --- два числа 4444 и 8888 (к примеру)
1 дек 09, 21:31    [8005181]     Ответить | Цитировать Сообщить модератору
 Re: NOT в зависимости от условия  [new]
us!
Guest
как вариант @x может быть boolean
1 дек 09, 21:32    [8005191]     Ответить | Цитировать Сообщить модератору
 Re: NOT в зависимости от условия  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
us!
как вариант @x может быть boolean
Нет, не может
Нет в MSSQL такого типа для переменных и полей.
Хотя в ANSI SQL 2008 такой тип есть.
1 дек 09, 21:36    [8005200]     Ответить | Цитировать Сообщить модератору
 Re: NOT в зависимости от условия  [new]
us!
Guest
автор
Нет, не может
Нет в MSSQL такого типа для переменных и полей.
Хотя в ANSI SQL 2008 такой тип есть.



кто ж спорит , я к тому что можно использовать (типа по условию проблемы)
(@x=4444) это верно
(@x<>4444) это не верно
1 дек 09, 21:41    [8005212]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить