开发者社区> 问答> 正文

两个存储过程问题

问题一
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

展开
收起
a123456678 2016-07-01 15:25:28 1918 0
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

    2019-07-17 19:50:07
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载