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

Откуда:
Сообщений: 76
Мне нужно найти людей проживающих либо в одном из указанных районов, либо в двух из указанных, с помощью этой ХП можно найти только если указано сразу два района. Подскажите пожалуйста!!!!
CREATE PROCEDURE searchKl1
@raion int = null, @raion1 int = null
AS
SELECT dbo.aktivTrN.*, dbo.фото.Линк
FROM dbo.aktivTrN LEFT OUTER JOIN
dbo.фото ON dbo.aktivTrN.КПП = dbo.фото.КПП
WHERE (РайонПрож =isnull (@raion, РайонПрож ) OR
РайонПрож = isnull (@raion1, РайонПрож))
GO
16 мар 04, 08:13    [579345]     Ответить | Цитировать Сообщить модератору
 Re: ХП (запрос с параметрами)  [new]
rst
Member

Откуда: Йобурк
Сообщений: 1005
РайонПрож =@raion 

OR
РайонПрож = @raion1

если null то равенство не выполняется ..
16 мар 04, 08:20    [579351]     Ответить | Цитировать Сообщить модератору
 Re: ХП (запрос с параметрами)  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1873
в услоии же стоит OR и у параметров есть default
так что можно указать только один район и все будет ОК
16 мар 04, 08:22    [579354]     Ответить | Цитировать Сообщить модератору
 Re: ХП (запрос с параметрами)  [new]
NataKolenko
Member

Откуда:
Сообщений: 76
Насколько я проверяла и поняла, то происходит следующее: Если например задан только @raion =1, то получится: WHERE (РайонПрож = 1 OR
РайонПрож = РайонПрож), т.е. из-за второй части - поднимаются все записи.
16 мар 04, 10:28    [579567]     Ответить | Цитировать Сообщить модератору
 Re: ХП (запрос с параметрами)  [new]
Sa
Member

Откуда: Ekaterinburg
Сообщений: 4019
Ну если с null то задайте @raion, @raion1 значение района которого точно нет в БД например 0 и тогда проблема решиться.
16 мар 04, 11:28    [579761]     Ответить | Цитировать Сообщить модератору
 Re: ХП (запрос с параметрами)  [new]
rst
Member

Откуда: Йобурк
Сообщений: 1005
Зачем спрашивать - если ответы не читать :)
16 мар 04, 11:45    [579825]     Ответить | Цитировать Сообщить модератору
 Re: ХП (запрос с параметрами)  [new]
NataKolenko
Member

Откуда:
Сообщений: 76
А если клиент не задал никакого района, то нужно поднять все записи.
Что-то все таки не получается. Может нужно еще передавать какой-то входной параметр, в зависимости от которого будет понятно задали поиск по району или нет???
16 мар 04, 16:40    [580987]     Ответить | Цитировать Сообщить модератору
 Re: ХП (запрос с параметрами)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Вообще-то ваша задача - вырожденный случай передачи в процедуру списка значений.

CREATE PROCEDURE searchKl1 

@raion int = null, @raion1 int = null
AS
SELECT dbo.aktivTrN.*, dbo.фото.Линк
FROM dbo.aktivTrN LEFT OUTER JOIN
dbo.фото ON dbo.aktivTrN.КПП = dbo.фото.КПП
WHERE (РайонПрож IN (@raion, @raion1)
OR (@raion is null and @raion1 is null))
GO
16 мар 04, 16:44    [581004]     Ответить | Цитировать Сообщить модератору
 Re: ХП (запрос с параметрами)  [new]
ChA
Member

Откуда: Москва
Сообщений: 11129
Изначально такого условия не было ! rst Вам правильно ответил.
А добавив к его условию
(РайонПрож =@raion OR РайонПрож = @raion1) OR
(@raion IS NULL AND @raion1 IS NULL) получите искомое.
16 мар 04, 16:46    [581011]     Ответить | Цитировать Сообщить модератору
 Re: ХП (запрос с параметрами)  [new]
NataKolenko
Member

Откуда:
Сообщений: 76
Большое - большое спасибо всем за помощь!!!!
17 мар 04, 06:46    [581744]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить