从SQLSERVER数据库中随机取一条或者N条记录

首先,我的表非常简单:

create table card(
	cid int identity(1000001,1) primary key,
	cname nvarchar(100) not null unique,
	att int,
	def int,
	blood int,
	star int
)

里面有些许个数据,现在,我想查询出 star对应的值的随机一条数据,先用java想了想,可以实现,但是比较麻烦,需要先查询出star对应的值,然后转换为数组或者list,再写随机数,然后得到值。

然后,在网上找了下资料,得到一下代码:

SELECT TOP 1 card.cid  FROM  card where star = 3
GROUP BY cid
ORDER BY NEWID()

其中,TOP 1 是取一个值,如果想取多个值,改一下就行了

但是这样得到的只有cid的值,想要得到所有的值,那最简单的方法,必然是 card.* 。 但是这样会报错,因为有group by

于是,再改了一下:

select * from card where cid = (
    SELECT TOP 1 card.cid  FROM  card where star = 3
    GROUP BY cid
    ORDER BY NEWID() 
);

搞定

你可能感兴趣的:(java)