我先来抛砖引玉吧
1、获得100条随机数据 select * from tb_table order by newid()
2、获得数据所在的行数 select (select count(1) from tb_table tb2 where tb2.id<=tb1.id) from tb_table tb1
交流。
1、获得100条随机数据 select * from tb_table order by newid()
2、获得数据所在的行数 select (select count(1) from tb_table tb2 where tb2.id<=tb1.id) from tb_table tb1
交流。
好像错误。。
应该这样吧
select top 100 * from tb_table order by newid()
select * , rn = ntile (10 )
over (partition by id order by colorder )
from syscolumns )t where rn = 1http://blog.csdn.net/jinjazz/archive/2009/08/28/4494245.aspx
select @m = max(id) from tbselect top 100 (select top 1 id from tb where id >= CONVERT(INT, RAND(CONVERT(BINARY(16),newid())) * @m)) as id
from master..spt_values
2. 用row_number()
在SQL Server中如何获得刚插入一条新记录的自动ID号
SELECT IDENT_CURRENT('TableName') --返回当前的最后自动编号
SELECT IDENT_INCR('TableName')--返回增量值
SELECT IDENT_SEED('TableName')--返回种子值 返回下一个自动编号:
SELECT IDENT_CURRENT('TableName') + (SELECT IDENT_INCR('TableName')) --创建数据库和表
create database MyDataBase
use MyDataBasecreate table mytable
(
id int identity(1,1),
name varchar(20)
)--执行这个SQL,就能查出来刚插入记录对应的自增列的值
insert into mytable values('李四')
select @@identity