mssql 实现mysql limit sql语句

mssql 实现mysql教程 limit sql语句
在mysql中,可以用 limit 来查询第 m 列到第 n 列的记录,例如:

select * from tablename limit m, n

但是,在sql server中,不支持 limit 语句。怎么办呢?

解决方案:

虽然sql server不支持 limit ,但是它支持 top。

我们以sql server 2005为例,就以它自带的示范数据库教程 adventureworks 作为测试数据:

select addressid, city, stateprovinceid, postalcode
from person.[address]
where stateprovinceid = 58
order by addressid

如果要查询上述结果中前6条记录,则相应的sql语句是:

select top 6 addressid, city, stateprovinceid, postalcode
from person.[address]
where stateprovinceid = 58
order by addressid

如果要查询上述结果中第 7 条到第 9 条记录,则相应的sql语句是:

select top 3 addressid, city, stateprovinceid, postalcode
from person.[address]
where stateprovinceid = 58
and addressid not in (
  select top 6 addressid from person.[address] where stateprovinceid = 58 order by addressid
)
order by addressid

时间: 2024-10-25 09:03:34

mssql 实现mysql limit sql语句的相关文章

sql优化-mysql数据库sql语句优化,求大神!!!!

问题描述 mysql数据库sql语句优化,求大神!!!! SELECT DISTINCT uid, level,username,ansnum FROM test WHERE level=100 GROUP BY uid ORDER BY ansnum DESC LIMIT 12; uid.ansnum均已建索引,主要是GROUP BY uid导致特别慢,如何提速??? 解决方案 MySQL数据库SQL语句优化原则 解决方案二: 根据你的查询需求,没有特别好的优化办法.注意group by 和o

mysql查看sql语句执行历史记录的例子

mysql查看sql语句执行历史记录  cat ~/.mysql_history 对于mysql版本5.1以后的版本,可以通过以下方式启动日志记录.能够记录下包括应用程序执行的sql语句. MariaDB [(none)]> SET GLOBAL log_output = 'TABLE'; Query OK, 0 rows affected (0.02 sec) MariaDB [(none)]> SET GLOBAL general_log = 'ON'; Query OK, 0 rows

MySQL数据库SQL语句的C++ ODBC接口类测试结果 (转载)

c++|mysql|odbc|数据|数据库|语句 发信人: engineer (剑胆琴心~还是得走,sigh...), 信区: Linux 标  题: MySQL数据库SQL语句的C++ ODBC接口类测试结果 (转载) 发信站: BBS 水木清华站 (Mon Aug  9 18:03:47 1999)   [ 以下文字转载自 Database 讨论区 ] [ 原文由 engineer 所发表 ]         MySql数据库SQL语句的C++ ODBC接口类测试结果            

mysql:sql语句应该怎么写?

问题描述 mysql:sql语句应该怎么写? 解决方案 select a.labels,group_concat(title) from article a,label l where INSTR(concat(',',a.labels,','),concat(',',l.id,','))>0 group by labels 解决方案二: http://chenwei.me/p/55.htmlhttp://richelace.blog.sohu.com/101765008.html 解决方案三:

MySQL 分页sql语句练习

[/align][align=left] 取出sql表中第31到40的记录(以自动增长ID为主键)  select top 10  * from t where id not in (select top 30 id from t order by id ) order by id;  select top 10 * from t where id in (select top 40 id from t order by id ) order by id desc ;  mysql方案:sele

mssql server 递归查询的sql语句

张表(ColumnTable)的结构如下图所示 当前需要实现的功能:通过Number的值为67来获取当前的节点ID.父节点ID 递归实现SQL语句:  代码如下 复制代码 with znieyu as(select c.Id,c.FatherId,0 as lv1 from ColumnTable c where c.Number=67union allselect c.Id,c.FatherId,lv1-1 from znieyu zinner join ColumnTable c on z.

mssql 与 mysql 中While语句使用方法

mssql 与 mysql教程 中while语句使用方法 while的使用水平能够有些帮助. while boolean_expression     { sql_statement | statement_block }     [ break ]     { sql_statement | statement_block }     [ continue ] 参数 boolean_expression 返回 true 或 false 的表达式.如果布尔表达式中含有 select 语句,必须用

mysql在SQL语句中使用replace替换字符

本来不想告诉大家的,因为采集别人网站不是什么光彩事,但觉得这个技巧实在是够强,要不是这简短的一行代码,我还不累死了.是这样的,采集了一些别人的文章,可能是采集程序的问题,每篇文章的标题里都多出了一些字符<img src="images/awwor.gif">,导致在生成HTML网页后很多内容不显示,但是看了看记录有2000多条,一条一条改,还不累死我啊.于是请教了一个SQL高手,发我一行SQL语句:  代码如下 复制代码 Update dede_addonsoft SET

mysql 显示SQL语句执行时间的代码_Mysql

MySQL 的 SQL 語法調整主要都是使用 EXPLAIN , 但是這個並沒辦法知道詳細的 Ram(Memory)/CPU 等使用量. 於 MySQL 5.0.37 以上開始支援 MySQL Query Profiler, 可以查詢到此 SQL 會執行多少時間, 並看出 CPU/Memory 使用量, 執行過程中 System lock, Table lock 花多少時間等等. MySQL Query Profile 詳細介紹可見: Using the New MySQL Query Prof