Я хочу создать процедуру, которая возвращает таблицу на основе ввода пармеров в качестве полей и оператора ... как я могу использовать выбор оператора, который передается как строка параметровСохраненная процедура для динамического запроса в SQL Server
ALTER PROCEDURE dbo.sp_getStaffRecord
(
@deptname varchar(50),
@dob date,
@active bit,
@salary int,
@firstname varchar(50),
@lastname varchar(50),
@OperatorDob varchar(2),
@OperatorSalary varchar(2)
)
AS
select
st.id, firstname, lastname, deptname, salary, dob,
(select firstname + ', ' + lastname from StaffTable
where firstname = @firstname and lastname = @lastname) as [Reporting To],
doj, active
from
StaffTable st
inner join
DepartmentTable dt on dt.id = st.dept
where
dt.deptname = @deptname
and
(
if (@OperatorDob = '>=')
st.dob >= @dob
else if (@OperatorDob = '<=')
st.dob <= @dob
else if (@OperatorDob = '=')
st.dob = @dob
else if (@OperatorDob = '>')
st.dob > @dob
else if (@OperatorDob = '<=')
st.dob = @dob
)
and st.active = @active
and st.salary >= @salary
RETURN
Как раз так это может быть правильно помечено, с какой версией SQL Server вы работаете? – Yuck