SQL 行数的选择
Oracle数据库
SELECT
*
from
(
SELECT
ROWNUM AS NO_ROW
,row_.*
from
(
SELECT
*
from
PLAN_TEMP
) row_
)
WHERE
NO_ROW BETWEEN 1 AND 12
PostgreSQL
select * from table limit 1 offset 12;
MySQL
select * from table limit 1, 12
SQL Server
select top 12 * from table
分页:
1.Oracle
SELECT
*
from (
SELECT
row_.*, rownum rownum_
from
(...... ) row_
WHERE
rownum <= ?)
WHERE rownum_ > ?
先按查询条件查询出从0 到页未的记录.然后再取出从页开始到页未的记录.(据说是效率最高的:))
2. SQL Server
i:select top [pagesize] *
from table
where
id not in (
select top [pagesize*(currentpage-1)] id
from table
[查询条件] order by id )
and [查询条件] order by id
先按查询条件排除 pagesize*[pagesize* (currentpage-1)]以前的纪录。&&再按查询条件把他以后的记录 top[pagesize] 出 来.
ii: select top PageSize *
from TableName
where id > (
select max(id)
from
(select top startRecord-1 id
from TableName
[查询条件]
相关文档:
TOP 增强。可以指定一个数字表达式,以返回要通过查询影响的行数或百分比,还可以根据情况使用变量或子查询。
可以在DELETE、UPDATE和INSERT查询中使用TOP选项。
2、更好地替换SET ROWCOUNT选项,使之更为有效。
OUTPUT
1、SQL Server 2005引入一个新的OUTPUT子句,以使您可以冲修改语句(INSERT、UPDATE、DELETE)中 ......
SQL2005中row_number( )、rank( )、dense_rank( )、ntile( )函数的用法(2) 收藏
SQL server 2005新增的几个函数,分别是row_number( )、rank( )、,DENSE_RANK( )、ntile( )下面以实例分别简单讲解。
1.row_number( )
先来点数据,先建个表
SET NOCOUNT ......
递归的通用表表达式
递归的CTE是根据至少两个查询(或者称为两个成员)构建的,一个是非递归查询,也成为固定成员,只能调用一次,另外一个是递归查询,也成为递归成员(RM),可以反复调用,直到查询不再返回行。查询由UNION ALL运算符连接为一个单独的CTE。
--使用递归的通用表表达式
GO
CREATE TABLE CarParts
( ......
1.需要一种下载卸载工具,这里选择微软官方提供的工具(msicuu2.exe)
http://support.microsoft.com/default.aspx?kbid=290301
2.使用卸载工具卸载所有SQL Server服务和相关组件(注意:卸载前要先停止对应的服务,否则可能卸载失败)
3.删除C:\WINDOWS\inf 下所用文件(我是在该文件夹下搜索&ldquo ......