前些天客户提出一个这样的要求:一个手机订餐网,查询当前所在位置的5公里范围的酒店,然后客户好去吃饭. 拿到这个请求后,不知道如何下手,静静地想了一下,在酒店的表中增加两个字段,用来存储酒店所在的经度和纬度,当订餐的时候,要求手机得到当前客户所在的经度和纬度传过来,再与数据库中酒店的经度和纬度计算一下,就查出来. 为了在数据库中查询两点之间的距离,所以这个函数需要在数据库中定义. 我网上找了很久,却没有找到这个函数.最后在CSDN上,一个朋友的帮助下解决了这个问题,非常感谢lordbaby给我提供…
DECLARE @BJ GEOGRAPHY DECLARE @XT GEOGRAPHY /*     GET Latitude/Longitude FROM here:http://www.travelmath.com/cities/Beijing,+China     the distance unit in SRID 4326 is the meter */ SELECT @BJ = geography::Point('39.92889', '116.38833', 4326) SELECT…
=================================版权声明================================= 版权声明:原创文章 谢绝转载  请通过右侧公告中的“联系邮箱(wlsandwho@foxmail.com)”联系我 勿用于学术性引用. 勿用于商业出版.商业印刷.商业引用以及其他商业用途. 本文不定期修正完善. 本文链接:http://www.cnblogs.com/wlsandwho/p/5075789.html 耻辱墙:http://www.cnblo…
在实际工作上遇到的问题: 在订单表中有某项商品是将“订购数量(Quantity)”乘以“单件价格(UnitCost)”等于该项商品的总价(Subtotal). 在数据表中有的列(以下皆改叫为“字段”)是通过其他的已有字段计算而来的,这样的字段为计算字段. 在 SQL Server 2005 的 SQL Server Management Studio(即SSMS) 中新添加的字段是须有数据类型和是否为NULL的属性的,但是计算字段却是没有属性的,那么如何在已有的数据表OrderDetail中添加…
Computed Column(计算列)是自SQL Server 2005开始就有的特性.计算列的定义是一个表达式.表达式可以是非计算列,常量,函数间的组合.但是不可以是子查询. 计算列数据固化 默认情况下计算列的数据是存储在磁盘上,仅当计算列被查询引用是才进行实时计算.只在计算列在定义是添加了PERSISTED关键词是才将数据固化. 计算列上创建索引或者作为分区函数的引用列 计算列上是运行创建索引和作为分区函数的引用列.但是必须指定PERSISTED关键词. 用法其实很简单.那么这里有些问题.…
一直习惯使用sys.master_files来统计数据库的大小以及使用情况,但是发现sys.master_files不能准确统计tempdb的数据库大小信息.如下所示: SELECT       database_id                                AS DataBaseId             ,DB_NAME(database_id)                       AS DataBaseName             ,Name      …
我这边有一个业务,需要客户填写身份证号,自动计算他的出生日期和年龄 在sql中,具体的存储过程实现是这样的: /*********************************************** 根据身份证号计算出生日期和年龄 Date:2017-10-15 Author:xzl 条件:身份证号码 返回:出生日期和年龄 ***********************************************/ /*** *根据身份证号计算出生日期和年龄 ***/ create…
通常我们计算数据库中表的数据有几个常用的聚合函数 1.count : 计数 2.sum: 计算总和 3.avg: 取平均值 4.max: 取最大值 5.min: 取最小值 6.isnull: 当返回数据为空,默认设置为0 7.coalesce: 当返回数据为空,默认设置为0 1.count的使用 下面是一个student表的所有数据…
一.通过一个开始时间.结束时间计算出一个工作日天数(不包含工作日与节假日): 1.函数 --创建函数,参数 @bengrq 开始时间,@endrq 结束时间 create function [dbo].[f_jsgzr](@bengrq date,@endrq date) --返回值类型 天数 returns int begin --计算出开始时间与结束时间的相差的天数,通过这个天数减去查询出来的节假日与休息日天数 --@jats 节假日,@gzrts 总天数,@gzrts 返回值 工作日天数…
DECLARE @var VARCHAR(50) SET @var ='116.404556|39.915156' 方式一: SELECT CASE WHEN ISNULL(@var,'') <> '' THEN LEFT(@var,CHARINDEX('|',@var)-1) ELSE '' END Longitude ,CASE WHEN ISNULL(@var,'') <> '' THEN RIGHT(@var,CHARINDEX('|',@var)-2) ELSE '' E…