赞
踩
首先,我的表非常简单:
- 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()
- );
搞定
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。