• SQL子查询


    -----------------------------------
    --1使用子查询实现命题查询出所有没有参加考试的同学的学生编号,姓名。
    use MySchool
    select * from Student
    select * from Score


    select sNo,sName from Student
    where sId not in(select studentId from Score)


    --2使用联接重做:查询出所有没有参加考试的同学的学生编号,姓名。
       
       select sNo,sName from(
       select sNo,sName,scoreId from Student
       left outer join Score on Student.sId=Score.studentId )
       as tab1 where scoreId is null
       
    --3查询所有英语及格的学生姓名、年龄及成绩


      select sName,sAge,english,math  from Student
      inner join Score on Student.sId=Score.studentId
      where english>60 and math>60
      
    --4查询所有参加考试的(english分数不为null)学生姓名、年龄及成绩


       select sName,sAge,english from Student
       inner join Score on Student.sId=Score.studentId
       where english is not null


    --5查询所有学生(报考的和未报考的)的学生姓名、年龄、成绩,如果报考了
    --但是没有参加考试显示缺考,如果小于english&math小于60分显示不及
    --如果没有报考显示没有报考(添加两列 ,“是否报考”,“是否合格”)


     select sName,sAge,
     english=case
      when english is null then '缺考'
      else CONVERT(nvarchar(6),english)
      end,
      math=case
      when math is null then '缺考'
      else CONVERT(nvarchar(6),math)
      end,
      是否报考=case
       when scoreId is null then '未报考'
       else '已报考'
       end,
       是否合格=case
       when english>60 and math>60 then '合格'
       else '不合格'
       end
      from Student
     left outer join Score on Student.sId=Score.studentId
     
    --6新建 临时表(#MyStudents,包含2个字段分别为sName、sAge)
    --并将Mystudents中的相应数据copy其中。
     
     create table #Mystudents
     (
       sName nvarchar(50),
       sAge int
     )
     
     insert into #Mystudents (sName,sAge) 
     select sName,sAge from Student
     
     select * from #Mystudents
     
    --7定义表变量、插入数据并查询:
    --表变量在会话结时,自动释放掉
      declare @tabBL table (col1 int,col2 nvarchar(50))
      insert into @tabBL
      select 1,'A' union
      select 2,'B'
    select * from @tabBL


    --8新建视图,修改视图,删除视图


     create view shitu
     as
      select sName,sAge,
     english=case
      when english is null then '缺考'
      else CONVERT(nvarchar(6),english)
      end,
      math=case
      when math is null then '缺考'
      else CONVERT(nvarchar(6),math)
      end,
      是否报考=case
       when scoreId is null then '未报考'
       else '已报考'
       end,
       是否合格=case
       when english>60 and math>60 then '合格'
       else '不合格'
       end
      from Student
     left outer join Score on Student.sId=Score.studentId


     select * from shitu
     
     update Student set sName='西施' where sName='华佗'
     
     drop view shitu
  • 相关阅读:
    WCF BasicHttpBinding 安全解析(2)BasicHttpBinding安全项
    WCF BasicHttpBinding 安全解析(4)windows验证(IIS宿主)
    网页优化系列三:使用压缩后置viewstate
    向IIS请求页面时,它做了什么?!(部分转载)
    使用Odbc链接mysql时parameter参数设置
    .net中close和dispose及关闭流操作
    asp.net 解码gb2312下urlencode后的字符串
    GridView实战一:自定义分页、排序、修改、插入、删除
    实现滑动分页(微博分页方式)
    javascript实例:逐条记录停顿的走马灯
  • 原文地址:https://www.cnblogs.com/qiqiBoKe/p/2791628.html
Copyright © 2020-2023  润新知