梦魂断江南
2019-12-15 11:06
采纳率: 85.7%
浏览 283

SQL server 简单题 帮忙一下谢谢 代码实现

1. 创建学生管理数据库,学生成绩表(字段和数据类型自定),插入十条记录。
2.使用IF语句求出学号为“10000”的学生平均成绩,如果大于或等于80分,输出“优良”。
3. 利用CASE语句输出学生成绩等级。
4.建立一个存储过程,可以根据学号查询出学生的成绩。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • qq_15940201 2019-12-16 16:00
    已采纳

    CREATE TABLE studentscore (student_id VARCHAR(20),item VARCHAR(20),score NUMERIC(3,2))
    INSERT INTO studentscore
    ( student_id, item, score )
    VALUES ( '10000', -- student_id - varchar(20)
    '语文', -- item - varchar(20)
    90 -- score - numeric
    ),
    ( '10000', -- student_id - varchar(20)
    '数学', -- item - varchar(20)
    80 -- score - numeric
    ),
    ( '10000', -- student_id - varchar(20)
    '外语', -- item - varchar(20)
    75 -- score - numeric
    ),
    ( '20000', -- student_id - varchar(20)
    '语文', -- item - varchar(20)
    90 -- score - numeric
    ),
    ( '20000', -- student_id - varchar(20)
    '数学', -- item - varchar(20)
    80 -- score - numeric
    ),
    ( '20000', -- student_id - varchar(20)
    '外语', -- item - varchar(20)
    75 -- score - numeric
    ),
    ( '30000', -- student_id - varchar(20)
    '语文', -- item - varchar(20)
    90 -- score - numeric
    ),
    ( '30000', -- student_id - varchar(20)
    '数学', -- item - varchar(20)
    80 -- score - numeric
    ),
    ( '30000', -- student_id - varchar(20)
    '外语', -- item - varchar(20)
    75 -- score - numeric
    ),
    ( '40000', -- student_id - varchar(20)
    '语文', -- item - varchar(20)
    90 -- score - numeric
    )

    IF (SELECT SUM(score)/COUNT(0) FROM studentscore WHERE student_id='10000') >= 80
    PRINT '优良'

    SELECT CASE WHEN score< 60 THEN '不及格' ELSE CASE WHEN score < 80 THEN '及格' ELSE '优良' END END,student_id,item FROM studentscore

    CREATE PROCEDURE [dbo].[queryscore]
    @student_id varchar(20)
    AS
    SELECT * FROM studentscore WHERE student_id=@student_id

    点赞 打赏 评论
  • dabocaiqq 2019-12-16 00:10
    点赞 打赏 评论
  • 大浪淘鲨 2019-12-16 15:48

    CREATE TABLE T_StudentScore
    (
    Id INT PRIMARY KEY IDENTITY,
    StuNo VARCHAR(10),
    Project VARCHAR(10),
    Score DECIMAL(18,2)
    )
    INSERT INTO dbo.T_StudentScore
    ( StuNo, Project, Score )
    VALUES ( '10000','语文',70),
    ( '10000','语文',73),
    ( '10000','数学',80),
    ( '10000','英语',90),
    ( '10000','化学',95),
    ( '10000','物理',86),
    ( '10000','生物',87),( '20000','语文',70),
    ( '20000','语文',73),
    ( '20000','数学',60),
    ( '20000','英语',50),
    ( '20000','化学',95),
    ( '20000','物理',66),
    ( '20000','生物',77)

    --过程创建
    --exec Pro_GetCjByNo '20000'
    CREATE PROC Pro_GetCjByNo
    @StuNo varchar(10)
    AS
    BEGIN
    SELECT cj=CASE WHEN AVG(Score)>=80 THEN '优良' ELSE '一般' end FROM T_StudentScore WHERE StuNo=@StuNo
    end

    点赞 打赏 评论

相关推荐 更多相似问题