sql 建表以及查询---复杂查询之成绩排名
废话不说,直接建表
1.表Player
USE T4st -- 设置当前数据库为T4st,以便访问sysobjects
IF EXISTS(SELECT * FROM sysobjects WHERE name='Player')
DROP TABLE Player
CREATE TABLE Player
(
Code VARCHAR(4) PRIMARY KEY NOT NULL,
Name VARCHAR(50),
)
INSERT INTO Player VALUES('','赵甲');
INSERT INTO Player VALUES('','钱乙');
INSERT INTO Player VALUES('','孙丙');
INSERT INTO Player VALUES('','李丁');
INSERT INTO Player VALUES('','周戊');
INSERT INTO Player VALUES('','吴已');
INSERT INTO Player VALUES('','郑庚');
INSERT INTO Player VALUES('','王辛');
INSERT INTO Player VALUES('','冯壬');
INSERT INTO Player VALUES('','陈葵'); SELECT * FROM Player
GO
2.表Record
USE T4st -- 设置当前数据库为T4st,以便访问sysobjects
IF EXISTS(SELECT * FROM sysobjects WHERE name='Record')
DROP TABLE Record
CREATE TABLE Record
(
Time DATETIME PRIMARY KEY NOT NULL,
Code VARCHAR(4),
Height VARCHAR(5),
Sucess VARCHAR(5)
)
INSERT INTO Record VALUES('2017-02-22 08:01:11','','1.80','False');
INSERT INTO Record VALUES('2017-02-22 08:02:32','','1.71','True');
INSERT INTO Record VALUES('2017-02-22 08:03:25','','1.81','True');
INSERT INTO Record VALUES('2017-02-22 08:04:22','','1.90','False');
INSERT INTO Record VALUES('2017-02-22 08:05:15','','1.90','True');
INSERT INTO Record VALUES('2017-02-22 08:07:06','','1.90','False');
INSERT INTO Record VALUES('2017-02-22 08:08:19','','1.91','True');
INSERT INTO Record VALUES('2017-02-22 08:09:18','','1.92','True');
INSERT INTO Record VALUES('2017-02-22 08:10:48','','1.81','True');
INSERT INTO Record VALUES('2017-02-22 08:12:36','','1.79','False'); SELECT * FROM Record
GO
3.判定特定时间段的成绩无效
USE T4st
DECLARE @time1 DATETIME,@time2 DATETIME
SET @time1 ='2017-02-22 08:03:00'
SET @time2 ='2017-02-22 08:09:00'
BEGIN
SELECT * FROM Record WHERE Time > @time1 AND Time < @time2
--判定特定时间段的成绩无效
UPDATE Record SET Sucess='False' WHERE Time > @time1 AND Time < @time2
SELECT * FROM Record WHERE Time > @time1 AND Time < @time2
END
GO
4.两表联合查询输出到一起(成绩有效者的时间,姓名,高度)
USE T4st
SELECT b.TIME,a.NAME,b.Height FROM Player a , Record b WHERE a.Code = b.Code AND b.Sucess='True' ORDER BY b.TIME ASC
GO

5.两表联合查询输出到一起(主要排名冠亚季军)
USE T4st
SELECT c.NAME,c.SCORD,'冠军' AS DeJiang FROM (
SELECT a.NAME,MAX(b.Height) AS SCORD,
ROW_NUMBER() over(order by a.NAME) as ROWS
FROM Player a , Record b WHERE a.Code = b.Code AND b.Sucess='True' GROUP BY a.NAME) c WHERE c.ROWS = ''
UNION
SELECT c.NAME,c.SCORD,'亚军' AS DeJiang FROM (
SELECT a.NAME,MAX(b.Height) AS SCORD,
ROW_NUMBER() over(order by a.NAME) as ROWS
FROM Player a , Record b WHERE a.Code = b.Code AND b.Sucess='True' GROUP BY a.NAME) c WHERE c.ROWS = ''
UNION
SELECT c.NAME,c.SCORD,'季军' AS DeJiang FROM (
SELECT a.NAME,MAX(b.Height) AS SCORD,
ROW_NUMBER() over(order by a.NAME) as ROWS
FROM Player a , Record b WHERE a.Code = b.Code AND b.Sucess='True' GROUP BY a.NAME) c WHERE c.ROWS = ''
GO
运行结果如下:

sql 建表以及查询---复杂查询之成绩排名的更多相关文章
- Oracle笔记(十一) 建表、更新、查询综合练习
有某个学生运动会比赛信息的数据库,保存了如下的表: 运动员sporter(运动员编号sporterid,运动员姓名name,运动员性别sex,所属系号department) 项目item(项目编号it ...
- sql建表,建索引注意事项
建表注意 .建议字段定义为NOT NULL 搜索引擎 MyISAM InnoDB 区别 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基 ...
- sql建表经验总结——主要是建表现象
在建表方面你都有哪些感悟? 见过的建表的一些现象: 1,一对多业务,有时候在主表见一个字段xxIds,然后存多表的id,多个英文逗号隔开,不知道这样好不好? 2,大部分字段建成varchar(50), ...
- spark sql建表的异常
在使用spark sql创建表的时候提示如下错误: missing EOF at 'from' near ')' 可以看下你的建表语句中是不是create external table .... ...
- SQL 建表与查询 HTML计算时间差
create database xue1 go --创建数据库 use xue1 go --引用数据库 create table xinxi ( code int, name ), xuehao ), ...
- sql server 表变量存储临时查询数据
对于使用sql server 编写存储过程或者类似的sql 查询的时候我们使用表变量进行临时数据的存储,可以方便我们进行下来的数据处理 表变量的使用类似如下: declare @userinfo ta ...
- Oracle的关于建表,约束,查询等的练习
从建立一个简单表,到实现一些复杂查询的例子, DROP TABLE grade;DROP TABLE item;DROP TABLE sporter;CREATE TABLE sporter( spo ...
- sql:Oracle11g 表,视图,存储过程结构查询
-- Oracle 11 G --20160921 涂聚文再次修改 --Geovin Du --GetTables SELECT owner, object_name, created FROM al ...
- 一个SQL 建表格式
CREATE TABLE [dbo].[SysSample]([Id] [varchar](50) NOT NULL,[Name] [varchar](50) NULL,[Age] [int] NUL ...
随机推荐
- Halcon图像采集助手提示找不到指定DLL文件
问题原因: Halcon软件更新导致某些图像采集DLL失效,这个时候就需要去MVTEC官网下载图像采集接口补丁程序,MVTEC官网地址http://www.mvtec.com/. 对于其他模块失效的D ...
- NMAP-端口扫描
1.时序选项 -T0 -> -T5 速度变快,但是准确性下降,nmap默认是T3 2.指定端口 3.扫描指定TCP和UDP端口 4.快速扫描常见100个端口 5.扫描常见的n的端口 6.TCP ...
- 官方文档 恢复备份指南二 Getting Started with RMAN
本章对RMAN进行基本的熟悉和了解 1.Overview of the RMAN Environment RMAN运行时需要的最小环境: target database ...
- java中 i = i++和 j = i++ 的区别
由于i++和i--的使用会导致值的改变,所以在处理后置的++和--的时候,java的编译器会重新为变量分配一块新的内存空间,用来存放原来的值, 而完成赋值运算之后,这块内存会被释放. (1)对于j = ...
- 第二章 shell的语法
变量:字符串.数字.环境和参数 获取变量内容可以在变量前使用$字符,使用echo指令可以将变量内容输出到终端. wuchao@wuchao-Lenovo:~$ var=hello wuchao@wuc ...
- ZOJ 2110 C - Tempter of the Bone
https://vjudge.net/contest/67836#problem/C The doggie found a bone in an ancient maze, which fascina ...
- 移动端调试和fiddler移动端抓包使用
这里介绍一款移动端的调试工具以及抓包工具fiddler的使用.也是初次接触,算是初次接触的总结. 1,移动端调试工具.手机截图如下 代码实现 <!DOCTYPE html> <htm ...
- Sqoop 1.4.6 安装配置
配置环境变量 # SQOOP SQOOP_HOME=/home/hadoop/development/src/sqoop-1.4.6-cdh5.6.0 PATH=$PATH:$SQOOP_HOME/b ...
- GC是什么?为什么要有GC
GC:Garbage Collection 垃圾收集器. GC就是对“不可达“的对象进行回收,释放内存. Java内存的管理实际上就是对对象的管理,其中包括对对象的分配和回收. 对于程序员来说,分配对 ...
- React 16.x & Hooks
React 16.x & Hooks Hooks https://reactjs.org/docs/hooks-intro.html https://reactjs.org/docs/hook ...