sql server
摘要: 有一个表,三个字段:km、kh和cj。其中km为科目号、kh为考生号、cj为成绩,现对km和kh进行分组,并获得每组前2条记录(按cj从高到低排序)。基本思想是为每组加一个序号列,再用where取序号小于等于20的。
摘要: 有时我们需要将聚合结果进行旋转,也就是说将要聚合的字段值作为字段名,将聚合结果作为记录。这可以使用传统的方法来解决,但在sql server2005提供了pivot函数可以更容易地解决这个问题。同时,还可以使用unpivot函数进行逆项的操作。
摘要: 本文介绍了sql server2005提供的四个排名函数(row_number、rank、dense_rank和ntile),其中row_number函数最常用,可以使用这个函数实现web分页功能。rank和dense_rank函数可以处理字段重复值问题。而ntile函数用于对记录进行分组处理。
摘要: cte不仅可以简化嵌套sql语句,还可以方便地实现递归调用。如要查询一个部门下面的所有子部门,或某个省下面的所有市和行政区,只需要一个cte就可以查出来。当然,如果不使用cte,实现这个是比较麻烦的,如果只想用sql实现,需要使用到游标等技术。
摘要: 在sql server中可以直接在sql语句中嵌套其他的sql语句,但当嵌套层次太多时,会使sql语句难以理解和维护,而如果使用表变量(临时表)又会增加i/o开销。为了解决这个问题,在sql server2005中提供了cte。使用cte可以使被嵌套的sql模块化,从而大大增加了sql语句的可读性,同时又不会增加太多的i/o开锁。
摘要: 今天想使用一下sql server 2005,启动sql server management studio后,发现连不了数据库了,看了下sql server的服务,竟然是停止状态,启动它,但无法启动,但看日志后,发现了这样的志信息:“c:\program files\microsoft sql server\mssql.1\mssql\data\mastlog.ldf" 已压缩,但未驻留在只读数据库或文件组中。必须将此文件解压缩。”
摘要: 本文介绍了如何通过sql server的sum聚合函数和多层子查询来进行迭代求和,并在最后给出了通过建立函数的方式来简化迭代求和的sql语句。
摘要: 本文介绍了一种通过web系统中的session对象和数据表的唯一索引字段来实现web分页的方法。这种方法是通用的,适合于所有的数据库(sql server、oracle、access、paradox等),并且不需要在数据库中建立任何资源(如存储过程、视图等)。需要的唯一条件就是表中要有一个唯一索引字段。
摘要: 本文介绍了按列连接一个字符串的三种方法,其中一种方法是使用clr(在本例中使用c#)来实现sql server2005的扩展聚合函数的方式来实现。这种方式更加灵活,但在实现上也更加复杂。如果能很好地掌握它,就可以实现非常“酷”的功能!
摘要: 本文讨论了如何通过transact-sql以及系统函数opendatasource和openrowset在同构和异构数据库之间进行数据的导入导出,并给出了详细的例子以供参考。
摘要: 在sql server中主要有三种方式导入导出数据:使用transact-sql对数据进行处理;调用命令行工具bcp处理数据;使用数据转换服务(dts)对数据进行处理。这三种方法各有其特点,下面就它们的主要特点进行比较。
摘要: 任何程序都可能出现错误,在sql server中执行transact-sql也不例外。如果在transact-sql中发生了错误,一般有两种捕捉错误的方法,一种是在客户端代码(如 c#、delphi等)中使用类似try...catch的语句进行捕捉;另外一种就是在transact-sql中利用transact-sql本身提供的错误捕捉机制进行捕捉。如果是因为transact-sql语句的执行而产生的错误,如键值冲突,使用第一种和第二种方法都可以捕捉,但是如果是逻辑错误,使用客户端代码进行捕捉就不太方便。因此,本文就如何使用transact-sql进行错误捕捉进行了讨论。