两个存储过程问题

问题一

create procedure usp_T1
@isDesc int
as
begin

-- select * from MyTable order by Id 

end

我想在这个存储过程中做判断,如果isDesc=1 就降序排序,请补充上面的例子

问题二

两张表

StudentTable
sId int
StudentName varchar(30)

ClassTable
cId int
ClassName varchar(30)
c_sId int

请编写一个存储过程查出所有学生数据,并给结果集添加一列 isInClass 其意义是如果这个学生在ClassTable那么则为1否则为0

阅读 2.1k
1 个回答

问题一:

SELECT * FROM t1 ORDER BY  CASE WHEN @isDesc=1 THEN -id  ELSE id END 

问题二:
如果有多门课,你这里应该有三个表,学生表,课程表,和学生-课程表
下面我的写法,如果有门可能任何学生都没选,则不会出来

SELECT s.sID,s.StudentName,c.ClassName,CASE WHEN  c.cId IS NULL THEN 0 ELSE 1 END AS isInClass
FROM StudentTable AS s LEFT JOIN ClassTable AS c ON c.c_sId=s.sId
GROUP BY s.sID,s.StudentName,c.ClassName
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进