应用场景
上图中要求按以下条件查询学生作业:
1、按学生作业的状态:全部 / 待批改 / 已批改
2、按学生学号 / 学生姓名 / 作业题目 / 全部
其中1和2是“并”的关系。
原始查询
ALTER
PROCEDURE
[
dbo
]
.
[
QueryStudentHomework
]
@teacherId
int
,
@state
int
,
--
0:全部,1:已提交,2:已批改,3:已退回
@queryType
int
,
@queryArg
varchar
(
500
)

AS
BEGIN
SET
NOCOUNT
ON
;
DECLARE
@queryIntArg
int
,
@queryStringArg
varchar
(
502
)
IF
(
@queryType
=
1
)
SET
@queryIntArg
=
Convert
(
int
,
@queryArg
);
ELSE IF(@queryType = 2 OR @queryType = 3)
SET
@queryStringArg
=
'
%
'
+
@queryArg
+
'
%
'

SELECT
教学.学生作业.学生作业Id
as
'
@id
'
,
教学.课程.课程简称
+
'
:
'
+
教学.课程班.课程班名称
AS
'
@classname
'
,
教学.作业.作业题目
as
'
@title
'
,
教学.作业.发布时间
as
'
@publishTime
'
,
教学.课程作业.上交时间
as
'
@commitTime
'
,
教学.作业.作业类型
as
'
@type
'
,