文章分类 -  SQL Server

SQL server、Oracle、MySql查询中分页方法
摘要:SQL Server 从数据库表中的第M条记录开始取N条记录,利用Top关键字:注意如果Select语句中既有top,又有order by,则是从排序好的结果集中选择:SELECT *FROM ( SELECT Top N * FROM (SELECT Top (M + N - 1) * FROM 表名称 Order by 主键 desc) t1 ) t2Order by 主键 asc 例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:SELECT *FROM ( SELECT TOP 20 * FROM (SELECT TOP 29 * FROM 阅读全文

posted @ 2011-08-05 09:22 中国蓝天 阅读(241) 评论(0) 推荐(0)

SQL Server 2005用Row_Number分页
摘要:1、为什么要使用row方案:在oracle里有row_number虚列,mySql有limit关键字分页,他们都有一个比较通用的分页方案,使得hibernate等类似的程序可以拼接sql字符串提供通用的分页。而sqlserver却没有这样的分页方案。于是乎,本人稍稍改装row_number()over(order by )用法,获得了一个通用的分页方案。如提供了sql如下:select * from Student where Age>18 order by Age被row方案的分页程序处理后变成(在select 后面添加 top 开始位置 0 __tc,在外层嵌套固定模式的查询sql) 阅读全文

posted @ 2011-08-05 09:22 中国蓝天 阅读(1470) 评论(0) 推荐(0)

常用SQL字符串函数
摘要:问: 请教一个SQL Server 2000问题: select * from itemcode where code like ’40%’ 如何让code=40101001 变成code=401-01-001 目前有666个CODE是类似40101001 用 什么语句能把它变成401-01-001 答: update itemcode set code=replace(code,left(code,8),left(code,3)+’-'+substring(code,4,2)+’-'+substring(code,6,3)) where code like ’40%’ 问: 阅读全文

posted @ 2011-08-05 09:21 中国蓝天 阅读(886) 评论(0) 推荐(0)

SQL Server如何完美压缩.mdf文件
摘要:大家都用过企业管理器中的--“收缩数据库”,里面的功能的确可以收缩数据库的日志文件(.ldf)和数据文件(.mdf),但都会发现同样的问题,在收缩“数据文件”(.mdf)时根本收缩不了多少。最多截段自动增长部份的,没有根本释放在日常操作中删除数据库的沉冗空间。上述应该是很多人遇到过的,笔者也千试万试试出来的方法,为了确定您的数据库安全,在执行下例的操作前,请先备份你的数据库。 1.首先你要找到你的数据库最大的表,一般是数目最大的表,如果不清楚,请在查询分析器查询: DBCC SHOWCONTIG 接着用 sp_spaceused 表 来查询reserved 的值和 data 的值 的差异可看. 阅读全文

posted @ 2011-08-05 09:17 中国蓝天 阅读(5880) 评论(0) 推荐(0)

SQL Server 交叉表应用大全
摘要:SqlServer如何生成动态交叉表查询VB+MS SqlServer,是我们目前开发数据库应用系统最常用的模式,翻翻以前的老帖子,有一些SqlServer的问题经常被提出来,但正确解答甚少,现把我对这些问题的见解贴出来,这次先讲讲动态交叉表的问题为了说明问题,我们用SqlServer自带的事例数据库(Northwind)来进行验证,所有的例子请放到Northwind中运行,我可能会省略Use语句,所引用的表,都是Northwind中的,下面我就不再说明了我这里指的交叉表,就是象Access的交叉表查询一样的效果,比如Employees表中City字段代表了城市的名称,TitleOfCourt 阅读全文

posted @ 2011-07-28 22:03 中国蓝天 阅读(1870) 评论(0) 推荐(0)

导航