📄 学生档案管理sql_20081122下午.sql
字号:
SELECT 姓名,c.课程名称,成绩, '等级' =
CASE
WHEN 成绩 < 60 THEN '不及格'
WHEN 成绩 >= 60 and 成绩 <= 90 THEN '好'
WHEN 成绩 >= 90 THEN '优秀'
ELSE '不知道'
END
select 姓名,c.课程名称,成绩 from 学生基本信息表 a,成绩信息表 b,课程信息表 c
where a.学号 = b.学号 and b.课程号 = c.课程号 and a.姓名 = '王明'
declare @学号 varchar(10),@成绩 decimal(8,2),@课程号 varchar(10)
DECLARE 成绩 CURSOR FOR
SELECT 学号, 课程号 FROM 成绩信息表 ORDER BY 成绩
OPEN 成绩
FETCH NEXT FROM 成绩
INTO @学号, @课程号
WHILE @@FETCH_STATUS = 0
BEGIN
IF (SELECT 成绩 FROM 成绩信息表 WHERE 学号 = @学号 and 课程号 = @课程号) < 60
BEGIN
set @成绩 = (SELECT 成绩 FROM 成绩信息表 WHERE 学号 = @学号 and 课程号 = @课程号)
PRINT @学号 + ' /' + @课程号 + ' ' + cast(@成绩 as char(8)) + '不及格'
END
ELSE
IF (SELECT 成绩 FROM 成绩信息表 WHERE 学号 = @学号 and 课程号 = @课程号) > 60
BEGIN
set @成绩 = (SELECT 成绩 FROM 成绩信息表 WHERE 学号 = @学号 and 课程号 = @课程号)
PRINT @学号 + ' /' + @课程号 + ' ' + cast(@成绩 as char(8)) + '及格'
END
FETCH NEXT FROM 成绩
INTO @学号, @课程号
end
CLOSE 成绩
DEALLOCATE 成绩
--找出有奖惩信息的学生
--找出有学籍异动的学生
--select a.* from dbo.学生基本信息表 a ,dbo.奖惩信息表 b where a.学号 = b.学号
SELECT * FROM 学籍异动信息表
declare @学号 varchar(10), @i integer
DECLARE 奖惩游标 CURSOR FOR
SELECT 学号 FROM 学生基本信息表
OPEN 奖惩游标
FETCH NEXT FROM 奖惩游标
INTO @学号
WHILE @@FETCH_STATUS = 0
BEGIN
select @@FETCH_STATUS
set @i = (select count(*) from 奖惩信息表 where 学号 = @学号)
if @i >= 1
begin
select * from 学生基本信息表 where 学号 = @学号
end
FETCH NEXT FROM 奖惩游标
INTO @学号
end
select @@FETCH_STATUS
CLOSE 奖惩游标
DEALLOCATE 奖惩游标
select 'SELECT ''' + name + ''' = count(*) FROM '
+ name from sysobjects where type = 'U'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -