簡體   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