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

Откуда:
Сообщений: 136
Блин! Не могу не поделиться. У меня всегда проблема была делать процедуры с непостоянным числом условий в where. Сами знаете, либо делать динамический текст и его запускать, либо писать зубодробительную конструкцию из кучи ифов и вариантов текста. А тут пришел сишник и все опошлил. Работает правда только для числовых полей, но можно развить и дальше эту мысль. Итак, предложение такое:
1) если надо отобрать некоторое поле по значению передаем параметр @A как обычно.
2) если по этому полю отбирать не надо @A=0
3) конструкция в where такая:
(field > @A and @A = 0) or (field = @A and @A > 0)
елки... работает!
4 авг 03, 19:51    [287882]     Ответить | Цитировать Сообщить модератору
 Re: Выборка по необязательному условию  [new]
culis
Member

Откуда: Calgary, Alta
Сообщений: 263
может я не понимаю чего....

create proc dbo.sp_x

@a int=null,@b int=null
as
set nocount on


select * from xx where field1=isnull(@a,field1) and field2=isnull(@b,field2)
4 авг 03, 19:55    [287885]     Ответить | Цитировать Сообщить модератору
 Re: Выборка по необязательному условию  [new]
flatron
Member

Откуда:
Сообщений: 62
а сишник не сказал, что ANDы можно скобками не обрамлять? :)
4 авг 03, 19:57    [287887]     Ответить | Цитировать Сообщить модератору
 Re: Выборка по необязательному условию  [new]
narval
Member

Откуда:
Сообщений: 136
culis, да это тоже хорошо. век живу век учусь. но все равно то решение прикольно, просто формальная логика
4 авг 03, 20:02    [287891]     Ответить | Цитировать Сообщить модератору
 Re: Выборка по необязательному условию  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
А вот из FAQ работает с любым типом.
5 авг 03, 06:46    [288058]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить