当前位置:   article > 正文

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

sqlserver 随机分组取数据

首先,我的表非常简单:

  1. create table card(
  2. cid int identity(1000001,1) primary key,
  3. cname nvarchar(100) not null unique,
  4. att int,
  5. def int,
  6. blood int,
  7. star int
  8. )

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

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

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

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

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

于是,再改了一下:

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

搞定

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/579764
推荐阅读
相关标签
  

闽ICP备14008679号