繁体   English   中英

存储过程的参数传递

[英]Parameter Passing for Stored Procedure

我需要使用存储过程来获取记录的帮助,我需要从存储过程中传递一个参数,但是我需要获取两个学期的记录

Declare @sem varchar(10)

set @sem ='1sem'

例如:从TestType ='1sem'的学生中选择*

set @sem ='2sem'
select * from student where TestType = '2sem'

set @sem ='dual'

如果我需要同时选择第一学期和第二学期,那么我只有一个参数,但是如何使用存储过程来处理它。

Select * 
from student 
where TestType where?

我该如何实现

select * 
from student 
where TestType = '1sem' or TestType = '2sem'

您可以尝试使用“,”(逗号)分隔testtype值

然后更改您的sql:

set @sem = '1sem, 2sem'
set @sql = 'select * from student where testype in ('+@sem+')'
execute sp_executesql @sql

你可以用这样的东西

DECLARE @sem VARCHAR(10) = '1sem';
select * from student where testype = @sem OR (@sem = 'dual' AND testype IN '1sem','2sem');

您必须将@sem声明为表并插入记录

DECLARE @sem TABLE
(
    Testype VARCHAR(50),
)

INSERT INTO @sem
select Testype from student where TestType = '1sem' or TestType = '2sem'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM