MS Sql Server技术分享
文章平均质量分 50
本专栏主要汇聚项目开发中使用MS Sql Server数据库遇到的问题的解决之道,通过分享,希望能帮助大家解决遇到的问题,最重要的是听到大家反馈的声音,搭建一座沟通交流的桥梁。
KeepSayingNo
分享改变世界
展开
-
MS SQL Server问题汇总
1.报SQL Server Agent连接不上的错误。到windows服务开启。原创 2023-09-13 15:42:44 · 964 阅读 · 0 评论 -
工作日计算问题思路和实现
项目中目前已有一周表存储了一年中所有的假日,给定查询起始日期和结束日期,推导出查询时间段内工作日是多少。原创 2014-10-14 15:36:01 · 3132 阅读 · 0 评论 -
数据库表字段数据分割问题
有的时候为了减少存储记录数,可能会把多条记录合并为一条显示。这种情况的发生主要体现上记录在表的其它字段都相同,只有某一个字段是变化的这种情况,例如人事管理中,部门中的相关人的ID都放在一条记录的一个字段中,中间用逗号隔开。现在的需求就是要将一条记录按ID字段分割成多条记录。原创 2014-09-17 13:57:26 · 4331 阅读 · 0 评论 -
考勤问题思路和解决
最近在做一个考勤系统,考勤主要关注的是缺勤、迟到和早退,目前的打卡控制器可以记录用户名和打卡时间,用户可能一天打卡多次,也可能一天只打了一次卡,这些情况都需要考虑。打卡信息都存储在考勤表中,从中要挖掘出一个月内的缺勤人员,迟到人员和早退人员,并且能显示缺勤、迟到和早退的时间。原创 2014-09-03 14:09:38 · 4866 阅读 · 0 评论 -
MS SQL Server分析数据库的I/O性能
本文介绍了如何通过MS SQL Server提供的一些动态管理视图和函数分析磁盘I/O性能。原创 2014-05-21 15:06:43 · 3074 阅读 · 0 评论 -
Sql获取数据集中各类型中的最大值(最新值)
最近在论坛中的MS Sql Server版块经常看到网友求助如何从一组数据集中获取每个类型中的某个字段最大的一条记录或者最新记录,首先大家都会想到采用group关键字分组,再利用max()函数获取最大的一条记录,但这样只能返回分组的字段,不能返回所有的字段,因此我在这里提供一种解决方法。原创 2013-08-05 13:41:32 · 8799 阅读 · 0 评论 -
Sql实现行列转换
从MS Sql Server 2005微软就推出了pivot和unpivot实现行列转换,这极大的方便了我们存储数据和呈现数据。今天就对这两个关键字进行分析,结合实例讲解如何存储数据,如何呈现数据。原创 2013-08-06 14:13:06 · 9469 阅读 · 0 评论 -
整体顺序部分倒序
最近做一个项目,要求结果集按照城市和时间正序排列,但是某个城市按照时间倒序排列。创建表语句 USE [master]GO/****** Object: Table [dbo].[Table_4] Script Date: 08/09/2013 14:30:58 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFI原创 2013-08-09 14:51:03 · 1831 阅读 · 0 评论 -
Replace关键字的妙用
在sql server中Replace关键字主要是用来将字符串中的某个字符替换成别的字符,今天要逆向思维,它还可以用来查询是否包含某个特定字符串。原创 2013-08-15 14:39:28 · 1800 阅读 · 0 评论 -
触发器实现表数据自动更新
通过触发器实现表数据的自动更新,关键是需要考虑全面,A表插入数据,B表自动更新,必须考虑B表自动更新的多种情况,可能A表的数据在B表不存在,可能A表的数据已经更新过B表,当然这只是一个简单的例子,实际情况可能会根据业务变得更加复杂,总之我们需要理清思路,通过流程图覆盖所有情形方能立于不败之地。原创 2013-08-27 16:00:10 · 6777 阅读 · 1 评论 -
取满足所有条件的记录
Table_A表是用户表,Table_B是条件表,每个用户对应多个条件,并且用户对应条件的状态有可能是true或者false,现在需要找出在Table_B中所有条件都是true的用户。原创 2013-12-26 16:48:28 · 2405 阅读 · 0 评论 -
同一字段多ID存储名称映射
在数据库设计时,为了减少表存储的记录数,对于1对多的关系可以存储在同一个记录中,本文着力解决多ID存储同一个字段其对应名称显示的问题。原创 2014-01-24 14:25:52 · 2686 阅读 · 0 评论 -
用SQL将字符串按分隔符拆为子串
项目中同一个型号包含多个尺码信息,这些信息采用分隔符拼接在一起存放在一个字段中,现在需要提交每个型号的各个尺码信息,也就是说原来一条记录存储的,现在需要变成多条记录。原创 2014-02-25 14:32:40 · 13969 阅读 · 0 评论 -
行列转换的另一种形式
在实际做项目的时候遇到这样一个问题:数据库表里存储了每个火车站每种类型的火车票销售数量,但是有的火车站可能不销售动车票或者高铁票,最终的结果要如图2所示,不销售类型的火车票就空出来。本文采用master.dbo.spt_values动态生成最大数目的列头,然后采用case when实现每种类型的火车票进行统计。原创 2014-03-25 13:40:59 · 1764 阅读 · 0 评论 -
两张表筛选相同数据和不同数据
项目中经常会对两张数据库表的数据进行比较,选出相同的数据或者不同的数据。在SQL SERVER 2000中只能用Exists来判断,到了SQL SERVER 2005以后可以采用EXCEPT和INTERSECT运算符比较两张表的数据。EXCEPT运算符返回由EXCEPT运算符左侧的查询返回、而又不包含在右侧查询所返回的值中的所有非重复值。INTERSECT返回由INTERSECT运算符原创 2014-03-27 15:08:13 · 15980 阅读 · 2 评论 -
cross apply和表值函数进行关联查询
目前场景是有一个兴趣爱好类型表和一个员工爱好表,员工爱好表中的爱好一列,如果这个员工有多个爱好,那么就将这些爱好放到一条记录当中,爱好之间用逗号隔开,现在需求是要将每个员工的这些爱好分隔成一条条记录查询出来,从而可以例如做员工爱好统计等应用。原创 2014-04-04 13:48:50 · 4766 阅读 · 2 评论 -
SQL实现字符串的拼接
SQL实现字符串的拼接原创 2013-11-28 17:07:36 · 3436 阅读 · 0 评论 -
SQL也能玩递归
采用公用表表达式(CTE)实现递归访问数据库表原创 2013-08-20 16:02:12 · 3719 阅读 · 0 评论 -
行列转换之列不固定
之前写过一篇文章是专门说明对于固定列如何进行行列转换,也就是说最终期望的结果集的列是固定,例如期望的结果是各个城市一年之中每个月的经济量,这个很好做,按照我之前写的文章操作即可。现在有种情况就是期望的结果列不固定,例如求某个月各个城市每天的经济量,由于月有的是30天有的是31天,这样就导致无法确定列,用之前的方法显然搞不定。那么这个时候我们就需要采用动态SQL去实时的拼接列名。原创 2013-08-09 16:29:32 · 4191 阅读 · 5 评论 -
SQL分类取每一类第一项
实际应用中经常会碰到这样的需求,在给定的数据集中要求返回每一类型中最大的一条,抑或是最小的一条,抑或是按时间排序最近的一条等等。很多人面对这样的需求显得束手无策,其实这个需求实现有很多种方法,今天给大家介绍总结的几种方法。原创 2013-08-27 11:42:55 · 7472 阅读 · 4 评论