博客专栏  >  数据库   >  分享SQL Server知识与经验。

分享SQL Server知识与经验。

主要介绍SQL Server在使用的过程中常用的一些技巧,以及需要注意的问题,同时对一些新的特性方法等进行介绍

关注
1 已关注
18篇博文
  • SQL SERVER 递归查询(1)——常用方法(CTE写法、函数)

    我们在实际查询中,时常会碰到需要递归查询的例子,SQL SERVER 2005之前的版本可以用函数方法实现,SQL SERVER 2005之后可以利用CTE(公用表表达式Common Table Ex...

    2018-03-16 10:00
    8208
  • SQL SERVER 递归查询(2)——向下递归计算

    向上向下累加减,是常用递归来实现的,在上篇博客中,介绍了递归的函数和CTE写法,并把向上累加做例子介绍了,这次我们介绍一下向下做减的写法,计算每月的余额,测试数据:--测试数据 if not obje...

    2018-03-16 22:19
    14882
  • SQL SERVER 递归查询(3)——分组递归

    有时候我们需要按照分组递归查询,比如省市区,同一个省同一个市的要放到一起显示,而我们原始数据又不是这样排列的,所以需要我们做一下处理,测试数据:--测试数据 if not object_id(N'Te...

    2018-03-17 16:49
    4869
  • SQL SERVER 递归查询(4)——递归层级查询

    我们在做递归查询的时候,有时候需要查询特定某一级的数据,如果我们的数据上没有标注该数据的层级数,那么我们可以在递归的时候自己加一个,并在读取的时候作为查询条件来用,测试数据:--测试数据 if n...

    2018-03-19 16:40
    5130
  • SQL SERVER FOR XML PATH 用法

    有时候我们需要把多行数据,合并成一行显示,并用逗号或者其他方式分隔显示,这时候我们可以使用FOR XML PATH的方式,来实现需求。测试数据如下:--测试数据 if not object_id(N'...

    2018-03-24 11:08
    3869
  • SQL SERVER EXCEPT、INTERSECT 用法

    EXCEPT主要是用来获取两个结果集的差;两个结果用EXCEPT链接,返回第一个结果集不在第二个结果集中的数据。INTERSECT主要是用来获取两个结果集的交集;两个结果用INTERSECT链接,返回...

    2018-03-30 11:14
    4591
  • SQL SERVER 连乘写法

    SQL SERVER 提供了SUM、COUNT、MAX、MIN、AVG等聚合函数,但是没有提供连乘的函数,但是在实际开发过程中,我们可能会用到连乘的数据,所以我们可以自己实现连乘的写法,测试数据:--...

    2018-04-03 17:05
    3433
  • SQL SERVER 游标使用

    我们在处理数据的时候,经常会出现需要循环处理数据的需求,如果我们能用CTE或者其他语句处理的话,没有问题,但有时候往往处理起来比较困难,这时候我们可以选择使用游标处理,选择使用哪种形式,要考虑效率问题...

    2018-04-04 09:14
    3735
  • SQL SERVER 表分区技术

    当一个数据库表的数据达到千万级别的时候,这时候磁盘的I/O就成了性能的瓶颈,因此如果能提高磁盘的I/O能力,也就相应的提高了数据库的效率。SQL Server推出了表分区技术。表分区就是把一个数据库表...

    2018-04-08 08:08
    3597
  • SQL SERVER 利用触发器禁止删除数据并记录删除日志

    有时候我们数据库表中的数据会莫名其妙的被删除,不知道是业务问题还是被黑了,所以我们想要在数据库操作层面对此进行制止,同时记录操作的日志,我们可以利用触发器来实现这个需求,测试数据:--测试数据 if ...

    2018-04-08 10:26
    3977
  • SQL SERVER 90度行列互换

    我们有时候在处理数据显示的时候,需要把之前的数据进行90度的行列互转(注:不是行转列),数据处理起来比较麻烦,提供一个方法,测试数据:--测试数据 if not object_id('tab') is...

    2018-04-08 15:53
    3203
  • SQL SERVER MERGE 有则更新无则插入

    我们在处理数据的时候,往往会有“有则更新、无则插入”的需求,在SQL 2008 之前,通常是通过if 判断等,来做查询处理,SQL 2008 引入了MERGE ,可以更好的实现我们的需求,测试数据:-...

    2018-04-09 10:07
    3572
  • SQL SERVER 行列转换(1)——聚合函数静态转换

    在实际开发中,有时候需要对数据表进行行列转换,转换之后再显示对应的数据,行列转换的方法比较多,本次介绍静态的利用聚合函数来实现,行转列测试数据:--测试数据 if not object_id(N'Te...

    2018-04-09 11:09
    3804
  • SQL SERVER 行列转换(2)——PIVOT、UNPIVOT 转换

    上篇博客介绍了静态方式的行列转换,这次介绍一下利用SQL SERVER 函数实现的行列转换,行转列测试数据同之前的一样:--测试数据 if not object_id(N'Tempdb..#T')...

    2018-04-09 11:29
    3775
  • SQL SERVER 行列转换(3)——动态转换

    前边介绍了静态转换和PIVOT、UNPIVOT转换的方式,这次介绍一下动态拼接转换的形式,有时候我们的数据不是固定的,可能会有多条,所以需要我们动态进行拼接实现,行转列测试数据:--测试数据 if n...

    2018-04-09 13:34
    4056
  • SQL SERVER 多字段不为空COALESCE用法

    有时候我们需要对多个字段进行非空判断,显示几个字段中不为空(最前边)的那个,字段少的时候,我们可以使用CASE WHEN做判断,但是多的时候写起来就比较麻烦了,这时候我们可以用COALESCE,测试数...

    2018-04-13 09:21
    3699
  • SQL SERVER 利用ROW_NUMBER 删除重复数据

    分享一个小知识点,论坛里也常有人问这种问题,表中数据除了ID不同,其他数据一样,然后保存ID最大(或者最小)值,测试数据:--测试数据 if not object_id(N'Tempdb..#T') ...

    2018-04-19 08:36
    5196
  • SQL SERVER 利用spt_values 生成连续日期数据

    有时候我们在展示数据的时候想要展示本月所有天数的数据,但是我们数据库里只存储了有数据的日期,当天没有数据插入的数据就没有存储,例如这样:--测试数据 if not object_id(N'Tempdb...

    2018-04-21 09:08
    3825

img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部