[问题]SQLServer2005与2000的Select Top语法不同的错误

baacloud免费翻墙vpn注册使用

调试用的是SQLServer2005,写个语句如下:

Select TOP (20)  id  FROM online orDER BY sdate

注意top的“( )”
帮助文档的说明如下:

语法
[
TOP (expression) [PERCENT]
[ WITH TIES ]
]
备注
在已分区视图中,不能将 TOP 与 Update 和 Delete 语句一起使用。
与 Insert、Update 或 Delete 一起使用的 TOP 表达式中被引用行将不按任何顺序排列。TOP n 随机返回 n 行。例如,下面的 Insert 语句包含 orDER BY 子句,但该子句并不影响由 Insert 语句直接引用的行。
参数
expression
指定返回行数的数值表达式。如果指定了 PERCENT,则 expression 将隐式转换为 float 值;否则,它将转换为 bigint。
在 Insert、Update 和 Delete 语句中,需要使用括号来分隔 TOP 中的 expression。为保证向后兼容性,支持在 Select 使用不包含括号的 TOP expression,但不推荐这种用法。
如果查询包包含 orDER BY 子句,则将返回按 orDER BY 子句排序的前 expression 行或 expression% 的行。如果查询没有 orDER BY 子句,则行的顺序是随意的。
PERCENT
指示查询只返回结果集中前 expression % 的行。
WITH TIES
指定从基本结果集中返回额外的行,对于 orDER BY 列中指定的排序方式参数,这些额外的返回行的该参数值与 TOP n (PERCENT) 行中的最后一行的该参数值相同。只有在指定 orDER BY 子句之后,才能在 Select 语句中指定 TOP ...WITH TIES。

SQL Server 2000 中的Top语法如下:

Select TOP 20 id FROM online orDER BY sdate

一个语法错误可能让你郁闷不止一天啊,切记兼容性调试

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏