sql复杂的存储过程写法
答案:2 悬赏:70 手机版
解决时间 2021-03-30 10:47
- 提问者网友:富士山上尢
- 2021-03-30 03:40
sql复杂的存储过程写法
最佳答案
- 五星知识达人网友:梦中风几里
- 2021-03-30 05:14
你的参数不知道都是什么意思
declare @xi varchar(10)
select @xi = 系 from stud where sfz = @sfz
select *
from stud a
where 系= @xi
and
(not exists(select 1 from stud where 系= a.系 and 年龄 < a.年龄)
or
not exists(select 1 from stud where 系= a.系 and 年龄 > a.年龄)
)追问@sfz char(18), 这个是身份证
@xb char(2), 这个是性别
@xm varchar(10),这个是姓名
@xh char(9),这个是学号
@yx varchar(10)这个是院系
看不懂你写的意思 , 院系中年龄最大最小 不用max min么追答max,min 是聚合函数,聚合函数只能找出最小的年龄是多少,最大的年龄是多少,然后再关联回去
你现在的需求,用not exists是最好的
not exists 条件的意思,是不存在比他年龄大的,那肯定就是最小的那个
或者不存在比他小的,那肯定就是最大的那个
declare @xi varchar(10)
select @xi = 系 from stud where sfz = @sfz
select *
from stud a
where 系= @xi
and
(not exists(select 1 from stud where 系= a.系 and 年龄 < a.年龄)
or
not exists(select 1 from stud where 系= a.系 and 年龄 > a.年龄)
)追问@sfz char(18), 这个是身份证
@xb char(2), 这个是性别
@xm varchar(10),这个是姓名
@xh char(9),这个是学号
@yx varchar(10)这个是院系
看不懂你写的意思 , 院系中年龄最大最小 不用max min么追答max,min 是聚合函数,聚合函数只能找出最小的年龄是多少,最大的年龄是多少,然后再关联回去
你现在的需求,用not exists是最好的
not exists 条件的意思,是不存在比他年龄大的,那肯定就是最小的那个
或者不存在比他小的,那肯定就是最大的那个
全部回答
- 1楼网友:污到你湿
- 2021-03-30 05:52
-- 最小的学生
select top 1 xh
from stud a
where yx=@yx
and not exists (select 1
from stud b
where b.yx = a.yx
and b.birthday < a.birthday
)
-- 最大的学生
select top 1 xh
from stud a
where yx=@yx
and not exists (select 1
from stud b
where b.yx = a.yx
and b.birthday > a.birthday
)追问我在同一个表中啊追答a, b 是同一个表stud的两个查询别名追问这个我知道 我是说 用一个存储过程写,为甚我老师说跟存储过程都不搭边--!追答这只是存储过程中的两段关键代码
select top 1 xh
from stud a
where yx=@yx
and not exists (select 1
from stud b
where b.yx = a.yx
and b.birthday < a.birthday
)
-- 最大的学生
select top 1 xh
from stud a
where yx=@yx
and not exists (select 1
from stud b
where b.yx = a.yx
and b.birthday > a.birthday
)追问我在同一个表中啊追答a, b 是同一个表stud的两个查询别名追问这个我知道 我是说 用一个存储过程写,为甚我老师说跟存储过程都不搭边--!追答这只是存储过程中的两段关键代码
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯