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

Откуда:
Сообщений: 27
Имеется следующая хранимая

CREATE PROCEDURE dbo.CitiesList
	(
		@ID_Region int,
		@ID_District int
	)
AS
set nocount on
set ansi_nulls off

select
	ID_city,
	CityName
from
	dbo.Cities
where
	ID_District = case when isnull(@ID_District ,0) = 0 then ID_District else @ID_District end
	and
	ID_region = case when isnull(@ID_region ,0) = 0 then ID_region else @ID_region end

Нужно
если @ID_District равен 0 или NULL -- во внимание принимается лишь условие с ID_region;

если @ID_Region равен 0 или NULL -- во внимание принимается лишь условие с ID_District;

если и @ID_region, и @ID_District равны 0 или NULL -- то просто выбираются все записи.
18 янв 06, 10:47    [2264591]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно задать условие  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
https://www.sql.ru/faq/faq_topic.aspx?fid=114
18 янв 06, 10:49    [2264603]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно задать условие  [new]
Glory
Member

Откуда:
Сообщений: 104760
Maniacosaur
Имеется следующая хранимая

CREATE PROCEDURE dbo.CitiesList
	(
		@ID_Region int,
		@ID_District int
	)
AS
set nocount on
set ansi_nulls off


Настройки set ansi_nulls и set quoted_idntifiers записываются вместе процедурой на момент ее создания. И автоматически восстанавливаются на время ее выполнения. Поэтому их использование внутри самой процедуры бесполезно и ничего не меняет.
18 янв 06, 11:01    [2264659]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно задать условие  [new]
Maniacosaur
Member

Откуда:
Сообщений: 27
Спасибо отозвавшимся, проблема решена
18 янв 06, 11:26    [2264805]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить