我的表如下所示:
GroupID INT NOT NULL
SomeValue INT NOT NULL
我想GroupID
在结果集中保持相同的行。不过,这些组本身应该随机排序。SomeValue
应该是次要的排序标准。像这样:
GroupID, SomeValue
13, 1
13, 2
7, 1
7, 2
11, 1
11, 2
...
ORDER BY GroupID, SomeValue
不会随机排列组。ORDERBY NEWID()
是完全随机的。ORDER BY SomeHash(GroupID), SomeValue
我想到了,但我每次都需要一个新的随机订单。
如何才能做到这一点?
您只需要对这些
GroupID
值进行随机排序,因此首先在派生表中获取这些不同的值和每个值的随机数:如果您已经有一个
Groups
包含GroupID
值的表,则可以将其替换FROM tablename GROUP BY GroupID
为FROM Groups
.您也可以使用(感谢 ypercubeᵀᴹ 修复)
在线演示