2016-09-23 11 views
0

Попытка написать хранимую процедуру SQL Server, которая принимает входной параметр для столбца бит, который используется в предложении WHERE.Динамический параметр для поля бит в предложении where в хранимой процедуре SQL Server

Основываясь на параметре, отправленном в хранимую процедуру, я хочу, чтобы процедура могла возвращать информацию. Если я передаю 0 или 1, он отлично работает. Если ни один параметр не отправлен в хранимую процедуру, я хочу, чтобы все значения были возвращены.

Как это сделать?

SELECT 
    field1, field2, field3 
FROM 
    table1 
WHERE 
    field1 = @inputParm 

ответ

0

Попробуйте это:

CREATE PROC TESTSP @inputParm BIT = NULL 
AS 
BEGIN 
    Select field1 ,field2 ,field3 From table1 WHERE (field1 = @inputParm OR @inputParm IS NULL) 
END 
+0

'@inputParm = NULL' ??? вы имели в виду '@inputParm IS NULL' довольно – Rahul

+0

@Rahul Спасибо, что поймали это, но я думаю, что правильная практика исправить исходный ответ, а не публиковать собственные варианты. Я обновил свой ответ. – alan

+0

Это не совсем то, что мне нужно. Мне нужно иметь возможность возвращать следующее на основе входного параметра: – Ask

0

Просто включите другой IS NULL условие в вашем предложении WHERE как

WHERE field1 = @inputParm OR @inputParm IS NULL 

 Смежные вопросы

  • Нет связанных вопросов^_^