Sql ÀïÃæ ROW_NUMBER Ó¦Óó¡¾°
ROW_NUMBER ·µ»Ø°´Ò»¶¨¹æÔòÅÅÐòµÄµ±Ç°¼Ç¼¶ÔÓ¦µÄÐкÅ
±ÈÈçÎÒÃÇÓÐÕâÑùÒ»¸öÓ¦Óó¡¾°£º
ÏÖÔÚÓиö±ÈÈü£¬ÐèÒª´ÓÍøÉϲÎÈüÕß´Ó´ÓÍøÂçÉϱ¨Ãû£¬È»ºóÈ¥×îÔ籨ÃûµÄ5¸öÈ˲μӱÈÈü£¬Îª´ËÎÒÃÇʵÏÖÈçÏ£º
1.Ϊ´ËÎÒÃÇÒª½¨Á¢Ò»ÕűíÀ´±£´æ±¨Ãû²ÎÈüÕßµÄÐÕÃû¼°Æð±¨Ãûʱ¼ä
CREATE
TABLE [dbo].[UserEnroll](
[UserName] [nvarchar]
(50) NULL, --²ÎÈüÕßµÄÐÕÃû
[EnrollTime] [datetime]
NULL --±¨Ãûʱ¼ä
)
ON [PRIMARY]
2.ÎÒÃÇSql Ïò±íÖвåÈëÊý¾Ý£¬Ä£Äâ²ÎÈüÕß±¨Ãû
insert
into [dbo].[UserEnroll] values('CC', GETDATE())
insert into [dbo].[UserEnroll] values('CC1', DateAdd(DAY,-1,GETDATE()))
insert
into [dbo].[UserEnroll] values('CC2', DateAdd(DAY,-2,GETDATE()))
insert
into [dbo].[UserEnroll] values('CC3', DateAdd(DAY,-3,GETDATE()))
insert
into [dbo].[UserEnroll] values('CC4', DateAdd(DAY,-4,GETDATE ()))
insert
into [dbo].[UserEnroll] values('CC5', DateAdd(DAY,-5,GETDATE()))
insert
into [dbo].[UserEnroll] values('CC6', DateAdd(DAY,-6,GETDATE()))
insert
into [dbo].[UserEnroll] values('CC7', DateAdd(DAY,-7,GETDATE()))
3.ɾ³ý·Ç×îÔç5±¨ÃûµÄÈË
a. ¸ø±í¼ÓÉÏÐкÅ
SELECT
*, ROW_NUMBER() OVER(ORDER BY EnrollTime) AS RowNum
from [dbo].[UserEnroll]
½á¹ûÈçÏ£º
UserName EnrollTime RowNum
CC7 2010-05-11 17:38:42.403 1
CC6 2010-05-12 17:38:42.403 2
CC5 2010-05-13 17:38:42.403 3
CC4 2010-05-14 17:38:42.403 4
CC3 2010-05-15 17:38:42.403 5
CC2 2010-05-16 17:38:42.403 6
CC1 2010-05-17 17:38:42.403 7
CC 2010-05-18 17:38:42.403 8
b. ÄÇôÎÒÃÇɾ³ýRowNum ´óÓÚ5µÄ¼Ç¼
WITH UserEnrollWithRowNumber AS (
SELECT *, ROW_NUMBER() OVER(ORDER BY EnrollTime) AS
RowNum from [dbo].[UserEnroll])
DELETE from UserEnrollWithRowNumber
WHERE RowNum > 5
½á¹ûΪ effect 3 rows
c. ÔÙÓÃa²½ÖеÄÓï¾ä²éѯ±¨Ãû±í½á¹ûΪ
UserName EnrollTime RowNum
CC7 2010-0
Ïà¹ØÎĵµ£º
ʹÓÃTranact-SQL ±àд´úÂëÀ´´´½¨Ò»¸öÐÂ±í£º
USE [OnlineJudge]
GO
/****** Object: Table [dbo].[User1] Script Date: 05/17/2010 14:05:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[User2](/*notice convert the tablename*/
[num] [int]IDENTITY(1,1) NOT N ......
µÚÒ»ÖÖ£º
select b.* from
( select a.*, rownum row_num from
(select t.* from A05_ORGANIZATION t order by org_name_en asc) a
) b
where b.row_num between 1 and 5 order by b.row_num asc
µÚ¶þÖÖ£¨¸ü¸ßЧ£©£º
select b.* from
( select a.*, rown ......
oracleµÄodbcÍø¹Ø£¨gateway£©¼¸ºõÌṩһ¸öÎÞÏßµÄÊý¾ÝÕûºÏƽ̨£¬ÔÚoracleºÍÆäËüRDBMSÖ®¼ä£¬ÎÒÔÚÕâ²»Ïë˵ËüµÄ£¬²Ù×÷£¬ÏÞÖÆÒÔ¼°Ïà¹ØÐÔ£¬Ëü½â¾öÁËÒ»¸öСÎÊÌ⣬°ÑËü½¨Á¢ÆðÀ´ÄãÄÜ£¬ÀýÈ磬´´½¨Ò»¸ö database link ÔÚoracle ºÍoracleÖ®¼ä£¬±Ï¾¹£¬ÕâÑù²»ÊǺܺÃô£¬ÀýÈçÄãÄÜÔËÐÐÏÂÃæµÄsqlÓï¾ä£¬
select o.col1, m.col1 from or ......
SQL Server 2005µÄÐ¶ÔØÊÇÒ»¸ö·Ç³£Í·ÌÛµÄÎÊÌâ¡£ÎÒÔø¾³¢ÊÔ¹ýÖ±½ÓʹÓá¾Ìí¼Ó»òɾ³ý³ÌÐò¡¿¹¤¾ßÐ¶ÔØ¡¢Çå³ý°²×°Ä¿Â¼¡¢É¾³ý×¢²á±íÄÚÈݵȵȸ÷ÖÖ·½Ê½×ÛºÏÐ¶ÔØ£¬ÃãÇ¿³É¹¦¡£ÏÖÔÚÖÕÓÚÕÒµ½ÁËÒ»¸öʰ빦±¶µÄ·½·¨£¬¶à´Î³¢ÊÔ£¬Î´ÓÐʧ°Ü,¾ßÌåÈçÏÂ:
1.ÏÂÔØÐ¶ÔØ¹¤¾ß£¬ÓÐÁ½ÖÖ£º
µÚÒ»ÖÖÊÇ΢Èí¹Ù·½ÌṩµÄ¹¤¾ß(msicuu2.exe)
http://support.mic ......
SQL Server 2005
±¾Æª½éÉÜÈçºÎÁ´½Óµ½Sql Server 2005.
²ÉÓÃSQL ±¾µØ¿Í»§ ODBCÇý¶¯
²ÉÓÃSqlÉí·ÝÑéÖ¤
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
ÄãÕýÔÚʹÓÃSQL Server 2005 Express£¿±ðÍü¼ÇÁË£¬ServernameµÄÓï·¨ÊÇServername\SQLEXPRESS£¬Äã¿ÉÒÔÓÃÄã°²× ......