我需要选择随机数量的行,但还要确保这些行不包含重复的图像值:
ImgID Image
1637 PM1371564839.jpg
1638 PM1371564839.jpg
1639 PM1371564840.jpg
1640 PM1371564840.jpg
1641 PM1371564840.jpg
1642 PM1371564841.jpg
1643 PM1371564842.jpg
1644 PM1371564842.jpg
1645 PM1371564842.jpg
1646 PM1371564843.jpg
1647 PM1371564843.jpg
我做了一个 - select top 25% * from Table order by newid();
这适用于事物的随机方面,但它会带回重复项。我尝试过一种独特的方法,但它不喜欢按部分排序。基本上有没有更好的方法来显示随机 3 张不重复的图像。
最佳答案
看起来您有多个具有不同 ImgID 的图像
也许您想要这样的东西来获得独特的图像
SELECT TOP 25 PERCENT * FROM
(
SELECT
max(imgID) imgID,
Image
FROM [table]
GROUP BY [Image]
) x
ORDER BY newid();
关于sql - 选择没有重复项的随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17177758/