sqlserverのいくつかのよくあるページ
3299 ワード
CSDNから回転http://topic.csdn.net/u/20100726/10/ac55bccb-7905-4b50-9056-d19e00c79918.html
:
CREATE TABLE [TestTable] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Note] [nvarchar] (2000) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
:(2 , )
SET IDENTITY_INSERT TestTable ON
declare @i int
set @i=1
while @i<=20000
begin
insert into TestTable([id], FirstName, LastName, Country,Note) values(@i, 'FirstName_XXX','LastName_XXX','Country_XXX','Note_XXX')
set @i=@i+1
end
SET IDENTITY_INSERT TestTable OFF
-------------------------------------
:( Not In SELECT TOP )
:
SELECT TOP 10 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 20 id
FROM TestTable
ORDER BY id))
ORDER BY ID
SELECT TOP *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP * id
FROM
ORDER BY id))
ORDER BY ID
-------------------------------------
:( ID SELECT TOP )
:
SELECT TOP 10 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 20 id
FROM TestTable
ORDER BY id) AS T))
ORDER BY ID
SELECT TOP *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP * id
FROM
ORDER BY id) AS T))
ORDER BY ID
-------------------------------------
:( SQL )
create procedure XiaoZhengGe
@sqlstr nvarchar(4000), --
@currentpage int, -- N
@pagesize int --
as
set nocount on
declare @P1 int, --P1 id
@rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
select ceiling(1.0*@rowcount/@pagesize) as --,@rowcount as ,@currentpage as
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@currentpage,@pagesize
exec sp_cursorclose @P1
set nocount off
: , , , 。
, , 。
SQL , : :
:( ID SELECT TOP ) , SQL
:( Not In SELECT TOP ) , SQL
:( SQL ) ,
, 。
SELECT TOP 10 *
FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY tid) AS RowNumber,* FROM tenderInfo
) A
WHERE RowNumber > 10*(2-1)
SELECT TOP 20 *
FROM tenderInfo
WHERE (tid >
(SELECT isnull(MAX(tid),0) -- max null 0,
FROM (SELECT TOP (20*1) tid -- * id
FROM tenderInfo
ORDER BY tid) AS T))
ORDER BY tid