我需要帮助使用存储过程获取记录,我需要从存储过程传递一个参数,但我需要获取两个学期记录
Declare @sem varchar(10)
set @sem ='1sem'
Ex:从学生中选择*,其中TestType ='1sem'
set @sem ='2sem'
select * from student where TestType = '2sem'
set @sem ='dual'
如果我需要选择1st sem和2 sem,我只有一个参数,但是如何使用存储过程处理它。
Select *
from student
where TestType where?
我如何实现
select *
from student
where TestType = '1sem' or TestType = '2sem'
答案 0 :(得分:0)
您可以尝试将testtype值与“,”(逗号)
分开然后改变你的sql:
set @sem = '1sem, 2sem'
set @sql = 'select * from student where testype in ('+@sem+')'
execute sp_executesql @sql
答案 1 :(得分:0)
你可以使用这样的东西
DECLARE @sem VARCHAR(10) = '1sem';
select * from student where testype = @sem OR (@sem = 'dual' AND testype IN '1sem','2sem');
答案 2 :(得分:0)
您必须将@sem声明为表并插入记录
DECLARE @sem TABLE
(
Testype VARCHAR(50),
)
INSERT INTO @sem
select Testype from student where TestType = '1sem' or TestType = '2sem'