SQL语句之 SOS定位救师徒

2023-10-14 23:20

本文主要是介绍SQL语句之 SOS定位救师徒,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.需求:  话说  唐僧师徒四人,正过大雪山,  唐僧饿了,吩咐悟空去弄斋饭,悟空一个筋斗云飞开了。
                   突然,大风呼啸,雷鸣闪电,八戒和唐僧在慌乱中被雪山老妖抓走。
                  沙和尚到处寻找师徒下落无果。无奈之下,去找菩萨。
                   先前唐僧和八戒受菩萨所托,都带了一个SOS定位手表。
                  不管在那里,只要发送SOS信号,就可以把当前的经纬度发送给菩萨。

                  这雪山老妖势力范围大,方圆几百里都是他的妖洞,还真有点能耐,  唐僧和八戒 被这个洞卷到那个洞,
                  匆匆忙忙的,唐僧和八戒在每个妖洞里,都发送了SOS求救信息。
                  弄得 菩萨都不知 唐僧的下落,。    现在要你用SQL语句把最新的SOS记录给菩萨看。
                  每人只需要显示最新的一条SOS信息。

 

                  --  SOS求救信息,放在一个叫SOSInfo的表里面。
CREATE TABLE SOSInfo
( 
LoginID  VARCHAR(30) NOT NULL,  --用户id 目前规定在6-16个字符之间
PosTime     VARCHAR(48) NOT NULL, --采集时间:YYYY-MM-DD HH24:MI:SS
Latitude  VARCHAR(30) ,  --纬度       
Longitude  VARCHAR(30) ,          --经度 
SOSPhone        VARCHAR(16) , --sos求救号码
IsCheck         INTEGER, --是否已经查看
PRIMARY KEY  (LoginID,PosTime)
); 
--插入几条SOS求救信息insert into SOSInfo([LoginID],[PosTime],[Latitude],[Longitude],[SOSPhone],[IsCheck]) 
values('沙和尚','2013-04-17 12:11:33','23.2352635','30.2356855','15689584587',0)insert into SOSInfo([LoginID],[PosTime],[Latitude],[Longitude],[SOSPhone],[IsCheck]) 
values('孙悟空','2013-04-17 11:11:33','23.2352635','30.2356855','15689584587',0)insert into SOSInfo([LoginID],[PosTime],[Latitude],[Longitude],[SOSPhone],[IsCheck]) 
values('猪八戒','2013-04-17 10:11:33','23.2352635','30.2356855','15689584587',0)insert into SOSInfo([LoginID],[PosTime],[Latitude],[Longitude],[SOSPhone],[IsCheck]) 
values('猪八戒','2013-04-19 13:11:33','23.2352635','30.2356855','15689584587',0)insert into SOSInfo([LoginID],[PosTime],[Latitude],[Longitude],[SOSPhone],[IsCheck]) 
values('沙和尚','2013-04-17 14:11:33','23.2352635','30.2356855','13689584587',0)insert into SOSInfo([LoginID],[PosTime],[Latitude],[Longitude],[SOSPhone],[IsCheck]) 
values('唐僧','2013-04-17 19:11:33','29.2352635','30.2356855','15789584587',0)insert into SOSInfo([LoginID],[PosTime],[Latitude],[Longitude],[SOSPhone],[IsCheck]) 
values('唐僧','2013-04-17 11:11:33','26.2352635','30.2356855','15789584587',0)insert into SOSInfo([LoginID],[PosTime],[Latitude],[Longitude],[SOSPhone],[IsCheck]) 
values('唐僧','2013-04-17 18:11:33','24.2352635','30.2356855','15789584587',0)--很显然,唐僧和猪八戒 耐不住 寂寞  发 SOS 求救了,但是  被妖怪这个洞搬到那个洞,
  经纬度经常改变,让没筋斗云功夫的  沙和尚 很苦恼。--因为数据要最后一起返回一个DataTable,而不是一个DataSet,所以我们打算用一个表变量
declare @Users table([LoginID] [varchar](30) NOT NULL, [PosTime] [varchar](48) NOT NULL,[Latitude] [varchar](30) NULL,[Longitude] [varchar](30) NULL,[SOSPhone] [varchar](16) NULL,[IsCheck] [int] NULL) declare @name varchar(50)declare cursor1 cursor for       select distinct LoginID from SOSInfo             open cursor1                       --打开游标fetch next from cursor1 into @name  --将游标向下移1行,获取的数据放入之前定义的变量@name中while @@fetch_status=0      begin---插入到表变量insert into @Users  ([LoginID], [PosTime],[Latitude],[Longitude],[SOSPhone],[IsCheck])select top 1 [LoginID],[PosTime],[Latitude],[Longitude],[SOSPhone],[IsCheck]from SOSInfowhere LoginID = @nameorder by PosTime descfetch next from cursor1 into @name  --将游标向下移1行end-----把所有最新的SOS选择出来select [LoginID],[PosTime],[Latitude],[Longitude],[SOSPhone],[IsCheck]from @Usersclose cursor1                   --关闭游标deallocate cursor1

菩萨用这个SQL查询到了师徒下落

 

转载于:https://www.cnblogs.com/HCCZX/archive/2013/04/17/3026305.html

这篇关于SQL语句之 SOS定位救师徒的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/213821

相关文章

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

MySQL中的锁机制详解之全局锁,表级锁,行级锁

《MySQL中的锁机制详解之全局锁,表级锁,行级锁》MySQL锁机制通过全局、表级、行级锁控制并发,保障数据一致性与隔离性,全局锁适用于全库备份,表级锁适合读多写少场景,行级锁(InnoDB)实现高并... 目录一、锁机制基础:从并发问题到锁分类1.1 并发访问的三大问题1.2 锁的核心作用1.3 锁粒度分

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

MySQL count()聚合函数详解

《MySQLcount()聚合函数详解》MySQL中的COUNT()函数,它是SQL中最常用的聚合函数之一,用于计算表中符合特定条件的行数,本文给大家介绍MySQLcount()聚合函数,感兴趣的朋... 目录核心功能语法形式重要特性与行为如何选择使用哪种形式?总结深入剖析一下 mysql 中的 COUNT

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的