newid() 和row_number()

来源:互联网 发布:foobar for mac中文版 编辑:程序博客网 时间:2024/05/16 09:33


if exists(select * from sys.tables where name like 'userinfo')
 drop table userinfo
go
create table userinfo
(
 ID int primary key identity(1,1),
 U_Name varchar(20) not null,
 U_Age int not null,
 Address varchar(50) not null
)
go

insert into userinfo values('小谭',21,'重庆')
insert into userinfo values('小宁',20,'重庆')
insert into userinfo values('小江',21,'重庆')
insert into userinfo values('小高',20,'北京')
insert into userinfo values('小艳',21,'重庆')
insert into userinfo values('小琼',21,'重庆')
go
select * from userinfo order by newid()
go
with t_userinfo
as(

select row_number() over(order by u_age desc) as row_number111,* from userinfo
)

select * from t_userinfo 
where row_number111 >2 and row_number111<4

在这里,newid()函数表示的是随机取得数据,而row_nupmber()函数表示分页,用于分页和分段获取数据比较有效

当然,分页也可以用:

select * from (select top 5 * from (select top 5 * from employee order by id asc) a order by id desc) b order by id asc

表示取得5-10行的5条记录(5表示取得几条记录,10表示10前面的5条记录)

原创粉丝点击