存储过程 求大佬

一小只123 2020-10-23 10:25:29

CREATE DEFINER=`root`@`%` PROCEDURE `dddddddd`(in collegeId VARCHAR(20),majorId VARCHAR(20),classId VARCHAR(20),type VARCHAR(20),startTime VARCHAR(50),endTime VARCHAR(50),pageSize int(10),pageNum int(10))
begin
set @sql=null;
select GROUP_CONCAT(DISTINCT CONCAT('sum(case p.name',' when ''',p.name,''' then t.user_score else 0 end) as ''',p.name,'''')) into @sql
from account_student as s
left join (select a.user_score,a.user_id,a.paper_id from exam_paper_user_record as a ,(select user_id ,paper_id,max(add_time) as maxtime
from exam_paper_user_record group by user_id, paper_id)as b, exam_paper as p WHERE a.user_id=b.user_id AND a.paper_id=b.paper_id and p.paper_id=b.paper_id AND a.add_time = b.maxtime and p.type=type and s.college_Id=collegeId)
as t on t.user_id=s.user_id left join exam_paper as p on p.paper_id=t.paper_id where p.type=type;



type,collegeId可能是null 怎么让他是空的时候去掉这个查询条件 要哭了 mysql

简易版
select name into username from users where id=userId and user_name=userName;
userId, userName为传入值为空的话怎么去掉这个条件
...全文
222 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
一小只123 2020-10-23
  • 打赏
  • 举报
回复
感谢 收下我的膝盖
牛光敏 2020-10-23
  • 打赏
  • 举报
回复
select name into username from users where id=nvl(userId,id) and user_name=nvl(userName,user_name)
percentfl 2020-10-23
  • 打赏
  • 举报
回复
多加上一个判断就可以
将id=userId 变更为 (id=userId or userId is null)
userName同理
一小只123 2020-10-23
  • 打赏
  • 举报
回复
顶一下

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧