[SQL Server2012]OFFSET…FETCH对分页的增强尝试

[SQL Server2012]OFFSET…FETCH对分页的增强尝试
简介 SQL Server 2012中在Order By子句之后新增了OFFSET和FETCH子句来限制输出的行数从而达到了分页效果。相比较SQL Server 2005/2008的ROW_Number函数而言,使用OFFSET和FETCH不仅仅是从语法角度更加简单,并且拥有了更优的性能(看到很多人下过这个结论,但我测试有所偏差,暂且保留意见)。 MSDN上对于OFFSET和FETCH的详细描述可以在(http://msdn.microsoft.com/en-us/library/ms188385%28v=SQL.110%29.a...

SQL Server 2012新增的内置函数尝试

SQL Server 2012新增的内置函数尝试
简介 SQL Server2012新增了一些内置函数来让开发人员使用起来更加容易。可以减少代码量,下面我们将SQL Server新增的函数分为几类分别探讨一下。   字符串类函数 SQL Server2012中提供了两个和字符串相关的函数,分别为Concat和Format. Concat如其名称所示,用于连接两个字符串.但比过去的增强是可以免去类型转换的烦恼而直接将多个值连接为一个String值进行返回,如图1所示. 图1.Concat示例 Concat...

[SQL]FOR XML PATH

[SQL]FOR XML PATH
FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作。那么以一个实例为主. 一.FOR XML PATH 简单介绍              那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(hobby)用来存放兴趣爱好,表结构如下: 接下来我们来看应用FOR XML PATH的查询结果语句如下: ...

[SQL]CROSS APPLY和 OUTER APPLY 区别详解

[SQL]CROSS APPLY和 OUTER APPLY 区别详解
基础版: DECLARE @t table (姓名 varchar(10)) insert into @T values('张三') insert into @T values('李四') insert into @T values('王二') insert into @T values(NULL ) DECLARE @T2 table (姓名 varchar(10) , 课程 varchar(10) , 分数 int) insert into @T2 values('张三' , '语文' , 74) insert into @T2 values('张三' , '数学' , 83) insert into @T2 values('张三' , '物理' , 93)...

[Sql]日期时间格式转换

[Sql]日期时间格式转换
sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/ 语句及查询结果: Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM S...

[SQL]行列转换

[SQL]行列转换
在数据库操作中,有些时候我们遇到需要实现“行转列”的需求,例如一下的表为某店铺的一周收入情况表: WEEK_INCOME(WEEK VARCHAR(10),INCOME DECIMAL) 我们先插入一些模拟数据: INSERT INTO WEEK_INCOME SELECT '星期一',1000 UNION ALL SELECT '星期二',2000 UNION ALL SELECT '星期三',3000 UNION ALL SELECT '星期四',4000 UNION ALL SELECT '星期五',5000 UNION ALL SELECT '星期六',6...

使用WITH AS提高性能简化嵌套SQL

使用WITH AS提高性能简化嵌套SQL
一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会 被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数 据的部分。 特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高, 所以可以使用WITH AS短语,则只要执...

[SQL语法]行统计(COMPUTE)笔记

[SQL语法]行统计(COMPUTE)笔记
由于GROUP BY 字句与列聚集函数配合,实现了指定列数据的统计,但是其输出结果只能看到最后的计算值,不能同时浏览被统计列的原始值,而这种显示原始数据同时输出统计值的格式,在许多场合,尤其报表中,是很重要的。为此功能,必须使用行统计<compute>字句。应该说行统计本质上并无多大差别,指示输出格式上的差异,网格格式以多表输出,文本格式以多行输出。行统计<compute>字句的格式如下:...

[SQL]OPTION语句详解

[SQL]OPTION语句详解
OPTION 子句用于指定在整个查询过程中的查询提示(Query Hint)。通常,用户不必使用OPTION 子句,因为查询优化器会自动选择一个最佳的查询计划。OPTION 子句必须由最外层的主查询来指定。各查询提示之间应使用逗号隔开。其语法如下: OPTION (<query_hint> [,...n] ) <query_hint> ::= { { HASH | ORDER } GROUP | { CONCAT | HASH | MERGE } UNION | { LOOP | MERGE | HASH } JOIN | FAST nu...

想用一条sql取出每个分类的前两条记录

想用一条sql取出每个分类的前两条记录
--> 生成测试数据: #T IF OBJECT_ID('tempdb.dbo.#T') IS NOT NULL DROP TABLE #T CREATE TABLE #T (ID VARCHAR(3),GID INT,Author VARCHAR(29),Title VARCHAR(39),Date DATETIME) INSERT INTO #T SELECT '001',1,'邹建','深入浅出SQLServer2005开发管理与应用实例','2008-05-10' UNION ALL SELECT '002',1,'胡百敬','SQLServer2005性能调校','2008-03-22' UNION ALL SELECT '003',1,'格罗夫Gro...

sql如何找出第10-20条的记录

sql如何找出第10-20条的记录
1、 select top 10 * from (select top 20 * from table_name order by name asc) order by name desc 2、 select top 10 * from [table_name] where id in (select top 20 id from [table_name] order by id desc) order by id asc 3、 SELECT IDENTITY(INT, 1, 1) AS AutoID, * INTO #tempTable FROM yourTable ORDER BY yourCol SELECT * FROM #tempTable WHERE AutoID BETWEEN 10...

Oracle Sql 中常用字符串处理函数

Oracle Sql 中常用字符串处理函数
小写字母转大写字母:upper(); 大写字母转小写字母:lower(); 字符串截取函数:substr(str,a,b); a,b为整数,str为字符串, 截取字符串str从a开始的b位字符,当a为-1时从字符串右边至左开始查找, 例:select substr('abcd',2,2) from dual; ---返回bc; 字符串连接:|| 例:select 'ab'||'cd' from dual; ---返回abcd; 字符查找函数:instr(str,a,b) a为要查找的字符,b为整数,str为字符串, 查找字符串...
Copyright © 极品飞鸽 保留所有权利.   Theme  Ality 蜀ICP备14015766号-1

用户登录

分享到: