--假设 成绩>100 优

--假设成绩>90 良

select * from TblScore

select 英语成绩=

(case  when tEnglish>90  then '良' when tEnglish>100 then'优'    end),数学成绩=(case when tMath>90  then '良' when tMath>100 then'优'  end) from TblScore

--第二个练习  1  2  3

select * from user5

select 等级=(case when [level]=1 then'骨灰' when [level]=2 then'菜鸟' when [level]=3then '大神' end) from user5

--第三个练习

--6000 5500 4500

select * from MyOrders

select 销售员,销售总金额=SUM(销售数量*销售价格),称号=(

case

    when SUM(销售价格*销售数量)>6000

    then '金牌'

    when SUM(销售价格*销售数量)>5500

    then '银牌'

    when SUM(销售价格*销售数量)>4500

    then '铜牌'

    else

    '通牌'

end

) from MyOrders

group by 销售员



--收入 支出

select * from test

select number,收入=(

case

    when amount>0    

    then amount

    when amount<0

    then 0

end

),支出=(case

when amount<0



then ABS(amount)

when amount>0

then 0



end) from test



--查询全部的英语成绩  并英语的成绩>90 --子查询做

select * from ( select tEnglish from TblScore ) as t where t.tEnglish>90

--查询性别是男 年龄在20岁以上的

select * from( select * from TblStudent where tSGender='男') as t where t.tSAge>20



--1.查询出班级中全部24岁的男生(子查询)

select * from ( select * from TblStudent where tSGender='男') as t where tSAge=24

--2.查询出高一三班和高二二班的全部学生(子查询)

select * from TblStudent where tSClassId in(

 select tClassId from TblClass where tClassName='高一一班' or tClassName='高二二班')

 

 --2.查出黑马一期和黑马二期的全部学生

 use MyItcast

 select * from student

  select * from TblClass

 

  select * from student where TClassId in(select TClassId from TblClass where TClassName='黑马一期' or TClassName='黑马二期' )



--3.查询出的总人数,男同学多少人,数学平均成绩(子查询)

select 总人数=(select COUNT(*)from student) ,男同学多少人=(select COUNT(*) from student where TSGender=1),数学平均成绩=(select AVG(TblScore.TSMath) from TblScore)





--9条到16条的数据



select * from student

select top 8 * from student where TSId not in(select  top 8 TSId from student) --

--16  到 26

select top 8 * from student where TSId not in( select top 15 TSId from student)

select * from student



use nononodeleteImportant



select * from TblStudent



--每页三条  查第五页的



select * from (

select * ,编号=ROW_NUMBER() over(order by tSid) from TblStudent  ) as newTbl where newTbl.编号 between (5-1)*3+1 and 5*3




--每页9条数据 查询13页的

select * from (

select 编号=ROW_NUMBER() over(order by tSId),* from TblStudent) as t where t.编号 between (13-1)*9+1 and 13*9





select tMath,名次= ROW_NUMBER() over(order by tMath)  from TblScore

select tMath,名次=RANK() over(order by tMath) from TblScore --rank同样成绩的排名同样

select * from MyOrders

select 商品名称,行号=ROW_NUMBER() over(partition by 商品名称 order by id) from MyOrders --partition by 分区



--销售员的销售总金额

select * from MyOrders

select 销售员,销售总金额=SUM(销售数量*销售价格) from MyOrders

group by 销售员



--2.统计每一个销售员(订单)的销售金额占总销售金额的百分比。

select * ,销售数量*销售价格,

百分比=销售数量*销售价格*1.0/SUM(销售数量*销售价格) over(partition by 销售员 )*100

from MyOrders





--链接查询



--查询这个学生的时候能不能把这个学生所在的班级的名字也显示出来

select TblStudent.tSName,TblStudent.tSAge,TblStudent.tSGender,TblClass.tClassName from TblStudent

inner join TblClass

on TblStudent.tSClassId=TblClass.tClassId



--查询这个学生在哪个班级,他(她)的考试成绩

select  TblStudent.tSName,TblStudent.tSGender,TblClass.tClassName,TblScore.tEnglish,TblScore.tMath from TblStudent

inner join TblClass

on TblStudent.tSClassId=TblClass.tClassId

inner join TblScore

on TblStudent.tSId=TblScore.tSId

--创建视图

create view vw_Stu_Cla_Sco_newView

as

select  TblStudent.tSName,TblStudent.tSGender,TblClass.tClassName,TblScore.tEnglish,TblScore.tMath from TblStudent

inner join TblClass

on TblStudent.tSClassId=TblClass.tClassId

inner join TblScore

on TblStudent.tSId=TblScore.tSId

--

select * from vw_Stu_Cla_Sco_newView --查询视图

drop view vw_Stu_Cla_Sco_newView --删除视图





--查询年龄超过20岁的学生的姓名、年龄及所在班级



select TblStudent.tSName,TblStudent.tSAge,TblClass.tClassName from TblStudent

inner join

TblClass

on

TblStudent.tSClassId=TblClass.tClassId

inner join

TblScore

on

TblStudent.tSId=TblScore.tSId

where TblStudent.tSAge>20



--

--查询全部学生(參加及未參加考试的都算)及成绩

select * from TblStudent

inner join TblScore

on TblStudent.tSClassId=TblScore.tSId --參加考试的学生



select TblStudent.tSName, TblScore.tMath,TblScore.tEnglish from TblStudent

left join TblScore

on TblStudent.tSClassId=TblScore.tSId --參加考试的学生和没參加考试的学生





select TblStudent.tSName, TblScore.tMath,TblScore.tEnglish from TblStudent

left join TblScore

on TblStudent.tSClassId=TblScore.tSId

where TblScore.tSId is null --没參加考试的学生



--查询全部參加考试的,english分数不为null学生姓名、年龄及成绩



select TblStudent.tSName, TblScore.tMath,TblScore.tEnglish from TblStudent

inner join TblScore

on TblStudent.tSClassId=TblScore.tSId

where TblScore.tEnglish is not null  --參加考试的学生,英语成绩不为null



--练习3:查询全部学生(參加和未參加考试)的学生姓名、年龄、成绩,假设没有參加考试显示缺考,假设小于english&math60分显示不及格

use nononodeleteImportant

select TblStudent.tSName,TblStudent.tSAge,英语成绩=(case

when tEnglish is null

then '缺考'

else

    CONVERT(nvarchar,tEnglish)

 end),数学成绩=(case

    when tMath IS null

    then '缺考'

    else

    CONVERT(nvarchar,tMath)

  end ),是否及格=(case when tEnglish>60 and tMath>60 then '及格'

  else '不及格'  

   end) from TblStudent left join

TblScore on TblStudent.tSId=TblScore.tSId





select * from TblArea

select t.AreaId,t.AreaName,t1.AreaName from TblArea as t inner join TblArea as t1 on  t.AreaPId=t1.AreaId



--声明变量

declare @number int ;

set @number=30;

print @number

select @number

if(@number=30)

begin

    print '好帅'

end

else

begin

    select '真心恶心'

end







declare @avg int =0

set @avg=(select AVG(tMath) from TblScore)

if(@avg>60)

begin

    select top 3 * from TblScore order by tMath desc

end

else

begin

    select top 3 * from TblScore order by tMath asc

end

MsSqlServer 语句的更多相关文章

  1. whdxlib

    1 数据库系统实现 实 验 指 导 书 齐心 彭彬 计算机工程与软件实验中心 2016 年 3 月2目 录实验一.JDBC 应用程序设计(2 学时) ......................... ...

  2. net start sql server (instance)

    如何启动 SQL Server 实例(net 命令) 其他版本   可以使用 Microsoft Windows net 命令启动 Microsoft SQL Server 服务. 启动 SQL Se ...

  3. SQLSERVER 修改数据实例的排序规则

    SQL Server服务器修改排序规则的方法 操作及验证步骤: 1 登录数据库后,查看当前安装数据库默认排序规则的两种方式 方式一.使用SQL Server 2014 Management Studi ...

  4. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

  5. 数据库(MSSQLServer,Oracle,DB2,MySql)常见语句以及问题

    创建数据库表 create table person ( FName varchar(), FAge int, FRemark varchar(), primary key(FName) ) 基本sq ...

  6. MSSQLServer基础06(变量,case,选择语句)

    变量 声明:declare @UserName nvarchar(50) 赋值1:set @UserName=N'杨':修改 赋值2:select @UserName=N'牛':修改 输出:print ...

  7. MSSQLServer基础02(SQL语句入门(脚本、命令))

    SQL 全名是结构化查询语言(Structured Query Language),是关系数据库管理系统的标准语言 SQL语句是和DBMS“交谈”专用的语句,不同DBMS都认SQL语法. SQL语句中 ...

  8. 数据库(MSSQLServer,Oracle,DB2,MySql)常见语句以及问题(续1之拼接字符串)

    上一篇文章http://www.cnblogs.com/valiant1882331/p/4056403.html写的太长了,所以就换了一篇,链接上一节继续 字符串的拼接 MySql中可以使用&quo ...

  9. mssqlserver 查询数据库表结构语句

    查询指定表结构的表名.列名.类型.说明.字段长度 select o.name as tableName,c.name as columnName,t.name as columnType,p.valu ...

随机推荐

  1. 对于Hadoop的MapReduce编程makefile

    根据近期需要hadoop的MapReduce程序集成到一个大的应用C/C++书面框架.在需求make当自己主动MapReduce编译和打包的应用. 在这里,一个简单的WordCount1一个例子详细的 ...

  2. UNIX环境高级编程——Linux进程地址空间和虚拟内存

    一.虚拟内存 分段机制:即分成代码段,数据段,堆栈段.每个内存段都与一个特权级相关联,即0~3,0具有最高特权级(内核),3则是最低特权级(用户),每当程序试图访问(权限又分为可读.可写和可执行)一个 ...

  3. Spring系列

    Spring系列之访问数据库   阅读目录 一.概述 二.JDBC API的最佳实践 三.Spring对ORM的集成 回到顶部 一.概述 Spring的数据访问层是以统一的数据访问异常层体系为核心,结 ...

  4. Android 反编译(一,apktool+smail2java)

    一:解压缩(获取图片等资源) 对于apk中丰富的资源,假设我们在练习的时候须要引用某些apk中的资源文件时,最简单的办法使用解压缩工具对apk进行解压缩,然后在对应的文件夹下查找须要的资源文件. 二: ...

  5. 悼念传奇,约翰询问&#183;纳什和他的妻子艾丽西亚致敬,创建一个传奇,爱数学

    约翰·阅读·纳什的传记.我渴望录制通道 我一直相信数字,无论逻辑方程使我们认为.但这种追求一生的后,我问自己:"这是什么逻辑?谁决定的理由?"我的探索让我从物理到形而上,最后到了妄 ...

  6. Directx11学习笔记【十八】 Blending混合

    本文由zhangbaochong原创,转载请注明出处http://www.cnblogs.com/zhangbaochong/p/5634580.html 在d3d11中是按frame来渲染物体的,在 ...

  7. 答读者问(8):相关Java问题涉及到学习

    近来的,我收到一个研究生朋友的电子邮件,一般内容如下面: 日 (本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,我们的聊天号码:245924426.欢 ...

  8. Linux 于 shell 变数 $#,$@,$0,$1,$2 含义解释:

    变量说明: $$ Shell自己PID(ProcessID) $! Shell背景上次执行Process的PID $? 命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 全部參数 ...

  9. IP多播(组播)

    IP多播是实现数据一对多通信的模式.从一个源点传送到多个目的地,数据仅仅拷贝一份.这里说的数据仅仅拷贝一份,是指在每一条须要它的两个点之间,数据仅仅有一份.例如以下图为<计算机网络>(谢希 ...

  10. 最新jhost免费jsp云空间会员邀请码

    jhost支持jsp.php的免费云空间,邀请码用于激活空间服务: 邀请码:20141003104317_149661                  有效期:2014-10-03 http://w ...