- 浏览: 1742046 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (520)
- Oracle (10)
- Oracle错误集 (8)
- Oracle安装升级 (15)
- Oracle日常管理 (51)
- Oracle字符集 (7)
- Oracle备份恢复 (24)
- Oracle优化 (4)
- Oracle编程 (52)
- Oracle导入导出 (19)
- Oracle体系结构 (15)
- Oracle网络 (2)
- Oracle安全 (2)
- Oracle权限 (3)
- Oracle数据字典和性能视图 (2)
- Oracle常用地址 (5)
- SQLPLUS专栏 (7)
- SqlServer (13)
- SqlServer2005编程 (27)
- SqlServer2005管理 (15)
- MySQL (20)
- Dorado应用 (1)
- C# (24)
- Arcgis Server开发 (20)
- ArcSDE技术 (19)
- UML学习 (2)
- 设计模式 (2)
- JAVA EE (4)
- JavaScript (3)
- OFBIZ (27)
- JAVA WEB开发 (22)
- Linux&Unix (34)
- SHELL编程 (14)
- C语言 (11)
- 网络协议 (14)
- FREEMARKER (2)
- GROOVY (2)
- JAVA语言 (3)
- 防火墙 (0)
- PHP (2)
- Apache (2)
- Loader Runner (1)
- Nginx (3)
- 数据库理论 (2)
- maven (1)
最新评论
-
怼怼怼怼:
oracle的timestamp类型使用 -
怼怼怼怼:
oracle的timestamp类型使用 -
怼怼怼怼:
oracle的timestamp类型使用 -
pg_guo:
感谢
oracle中查看用户权限 -
xu234234:
5、MapResourceManager控件中添加了两个服务, ...
北京ArcGis Server应用基础培训笔记1
在select查询或表表达式中,top结合order by子句用于限制按order by顺序优先返回的结果
在2000中,只能使用常量制定该限制,而2005中支持在top中使用任意的独立表达式,而不仅仅是常量
例子:
SELECT TOP(3) OrderID, CustomerID, OrderDate
FROM dbo.Orders
ORDER BY OrderDate DESC, OrderID DESC;
SELECT TOP(1) PERCENT OrderID, CustomerID, OrderDate
FROM dbo.Orders
ORDER BY OrderDate DESC, OrderID DESC;
GO
因为Sql Server 2005支持把任意独立表达式作为TOP的输入,所以表达式必须被包含在圆括号内。为了向后兼容,仍然支持在select top查询中使用常量时可以不带圆括号
Top和确定性
Top查询并不一定要有Order by字句,然而这样的查询具有不确定性。也就是说,对相同的数据运行两次同样的查询,可能会产生不同的结果。
使用不带order by子句的select top查询的理由:
1、用select top查询快速预览表的结构或列名称
2、用select top(0)创建一个与另一个表或查询具有相同结构的空表
Top和输入表达式
DECLARE @n AS INT;
SET @n = 2;
SELECT TOP(@n) OrderID, OrderDate, CustomerID, EmployeeID
FROM dbo.Orders
ORDER BY OrderDate DESC, OrderID DESC;
Top和修改
Sql Server不支持在数据修改语句中使用order by子句,即使使用了top选项也是如此,所以它不能依赖于排序。Sql Server只影响正好先访问到的指定行数
新增:
Insert top(100) into target_table select col1,col2,col3 from source_table
删除:
DELETE TOP(100) FROM dbo.LargeOrders
修改:
UPDATE TOP(5000) dbo.LargeOrders
SET CustomerID = N'ABCDE'
WHERE CustomerID = N'OLDWO';
变相排序
新增:
insert into target_table
select top(10) col1,col2,col3 from source_table order by col1;
删除:
with cte_del as
(
select top(10) * from some_table order by col1
)
delete from cte_del
修改:
with cte_upd as
(
select top(10) * from some_table order by col1
)
update cte_del set col2=col2+1
在2000中,只能使用常量制定该限制,而2005中支持在top中使用任意的独立表达式,而不仅仅是常量
例子:
SELECT TOP(3) OrderID, CustomerID, OrderDate
FROM dbo.Orders
ORDER BY OrderDate DESC, OrderID DESC;
SELECT TOP(1) PERCENT OrderID, CustomerID, OrderDate
FROM dbo.Orders
ORDER BY OrderDate DESC, OrderID DESC;
GO
因为Sql Server 2005支持把任意独立表达式作为TOP的输入,所以表达式必须被包含在圆括号内。为了向后兼容,仍然支持在select top查询中使用常量时可以不带圆括号
Top和确定性
Top查询并不一定要有Order by字句,然而这样的查询具有不确定性。也就是说,对相同的数据运行两次同样的查询,可能会产生不同的结果。
使用不带order by子句的select top查询的理由:
1、用select top查询快速预览表的结构或列名称
2、用select top(0)创建一个与另一个表或查询具有相同结构的空表
Top和输入表达式
DECLARE @n AS INT;
SET @n = 2;
SELECT TOP(@n) OrderID, OrderDate, CustomerID, EmployeeID
FROM dbo.Orders
ORDER BY OrderDate DESC, OrderID DESC;
Top和修改
Sql Server不支持在数据修改语句中使用order by子句,即使使用了top选项也是如此,所以它不能依赖于排序。Sql Server只影响正好先访问到的指定行数
新增:
Insert top(100) into target_table select col1,col2,col3 from source_table
删除:
DELETE TOP(100) FROM dbo.LargeOrders
修改:
UPDATE TOP(5000) dbo.LargeOrders
SET CustomerID = N'ABCDE'
WHERE CustomerID = N'OLDWO';
变相排序
新增:
insert into target_table
select top(10) col1,col2,col3 from source_table order by col1;
删除:
with cte_del as
(
select top(10) * from some_table order by col1
)
delete from cte_del
修改:
with cte_upd as
(
select top(10) * from some_table order by col1
)
update cte_del set col2=col2+1
发表评论
-
SQL Server 2005中处理表分区问题
2008-08-28 11:01 1973数据库性能调优是每一 ... -
SQL LIKE 通配符随笔
2008-07-04 09:26 1576通配符 说明 _ 与任意单字符匹配 % 与包含一 ... -
五种提高 SQL 性能的方法
2008-07-02 12:10 1099有时, 为了让应用程序运行得更快,所做的全部工作就是在这里或那 ... -
SQL操作全集
2008-07-02 12:01 1072SQL分类: DDL—数据定义语言(CREATE,ALTER, ... -
不同服务器数据库之间的数据操作
2008-07-02 11:56 1878--创建链接服务器 exec sp_addlinkedser ... -
远程连接操作
2008-07-02 11:52 1255--远程连接操作 /******************** ... -
合并分拆表
2008-07-02 11:46 1416--合并分拆表 /********************** ... -
行列互转
2008-07-02 11:45 1349--行列互转 /*********************** ... -
T-SQL查询学习笔记——求下属和祖先的算法
2008-04-10 14:08 1864构建试验环境: CREATE TABLE dbo.Employ ... -
T-SQL查询学习笔记——数据修改
2008-04-10 11:45 2743一、插入数据 包括:select into、insert e ... -
T-SQL查询学习笔记——使用TOP和APPLY解决常见问题
2008-04-09 14:45 20191、每组中的TOP n问题 CREATE UNIQUE IND ... -
T-SQL查询学习笔记——分组因子的使用示例
2008-04-08 17:27 1617IF OBJECT_ID('Stocks') IS NOT N ... -
T-SQL查询学习笔记——求中值的几种方法
2008-04-08 11:28 2705中值有两种定义: 1、当组中包含奇数个元素时,我们将直接返回中 ... -
Over 字句
2008-04-07 17:34 1483功能:确定在应用关联的窗口函数之前,行集的分区和排序。 适用 ... -
sql 的随机函数newID()和RAND()
2008-03-20 11:05 3023SELECT * FROM Northwind..Orders ... -
T-SQL查询学习笔记——已有范围和缺失范围示例代码
2008-03-19 15:30 1855USE SqlTest;GOIF OBJECT_ID('db ... -
T-SQL查询学习笔记——快速生成数字辅助表的几种方法示例代码
2008-03-19 14:17 2265------------------------------- ... -
SELECT 与 SET 对变量赋值的区别
2008-03-17 15:29 2774SQL Server 中对已经定义的变量赋值的方式用两种,分别 ... -
SQL逻辑查询处理步骤
2008-03-14 17:22 17081、执行笛卡尔乘积(交叉联接) 2、应用ON筛选器(联接条件) ... -
Server 2005 中集合操作(UNION、EXCEPT、INTERSECT)
2008-03-14 16:32 1403集合操作在两个输入中比较全部行。 Union:返回 ...
相关推荐
本书及其续篇——《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》介绍了SQL Server 2005中高级T-SQL查询、查询优化及编程相关的知识。这两本书侧重于解决实践中的常见问题,并讨论了解决这些问题的方法。它们...
作为一本讲述T-SQL高级查询的专业图书,《Microsoft SQL Server 2008技术内幕:T-SQL查询》旨在结合实践中的各种常见问题,教读者如何用SQL作为语言工具来思考问题,揭示基于集合查询的强大威力。《Microsoft SQL ...
T-SQL中where子句与having子句的对比分析.pdf
《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...
《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》适合须要学习T-SQL的各级程序员和数据库专业人员,是他们快速掌握T-SQL的必备参考图书。 致谢 引言 第1章 T-SQL查询和编程基础 1.1 理论背景 1.2 SQL ...
《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...
T-SQL高级语句 SQL TOP 子句 SQL LIKE 操作符 SQL 通配符 SQL IN 操作符
《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》适合须要学习T-SQL的各级程序员和数据库专业人员,是他们快速掌握T-SQL的必备参考图书。 致谢 引言 第1章 T-SQL查询和编程基础 1.1 理论背景 1.2 ...
第1章 T-SQL查询和编程基础 1.1 理论背景 1.2 SQL SERVER体系结构 1.3 创建表和定义数据完整性 1.4 总结 第2章 单表查询 2.1 SELECT语句的元素 2.2 谓词和运算符 2.3 CASE表达式 2.4 NULL...
(5)SELECT (5-2) DISTINCT(5-3)TOP(<top>)(5-1) <select_list> (1)FROM (1-J) <left> <join> JOIN <right> on (2)WHERE (3)GROUP BY (4)HAVING (6)ORDER BY ; 每一步都会生成一个...
一:简单的语法知识 二:简单的增 删 改 查和一些相关子句 三:复杂一点的查询 四:约束 五:create drop alter 六:视图 七:存储过程与用户自定义函数 八:触发器 九:全文索引 十:游标
--高级查询在数据库中用得是最频繁的,也是应用最广泛的。 Ø 基本常用查询 --select select * from student; --all 查询所有 select all sex from student; --distinct 过滤重复 select distinct sex from ...
计算机后端-PHP视频教程. php与mysql加强- 07. php加强18-子句查询陷阱.wmv
SQL语言学习循序渐进SQL循序渐进(1)-------介绍SQL SQL循序渐进(2)-------表的基础知识 SQL循序渐进(3)-------数据检索 SQL循序渐进(4)-------创建表 SQL循序渐进(5)-------插入数据到表 SQL循序渐进(6)...
循序渐进介绍SQL,主要内容: SQL循序渐进(1)-------介绍SQL SQL循序渐进(2)-------表的基础知识 SQL循序渐进(3)-------数据检索 SQL循序渐进(4)-------创建表 SQL循序渐进(5)-------插入数据到表 SQL循序...
SQL循序渐进(1)-------介绍SQL SQL循序渐进(2)-------表的基础知识 SQL循序渐进(3)-------数据检索 SQL循序渐进(4)-------创建表 SQL循序渐进(5)-------插入数据到表 SQL循序渐进(6)-------删除表 SQL循...
SQL循序渐进(1)-------介绍SQL SQL循序渐进(2)-------表的基础知识 SQL循序渐进(3)-------数据检索 SQL循序渐进(4)-------创建表 SQL循序渐进(5)-------插入数据到表 SQL循序渐进(6)-------删除表 SQL循...
对Transact-SQL中groupby子句异常的分析.pdf
向JS对象数组添加类似SQL的查询功能。 包含该库将向对象数组添加where(),select()和orderBy()功能。 where()-接受SQL查询字符串作为参数。 模拟SQL WHERE子句。 处理所有表达式,包括BETWEEN和IN子句。 ...
用“多叉树”构造SQL查询中的WHERE子句——“多叉树”在VB中的实现及应用.pdf