Dav*_*vid 2 sql sql-server random select
我需要从表中获取3个随机行,然后通过BannerWeight列对这些行进行排序.
所以,如果数据是:
BannerID BannerWeight
1 5
2 5
3 10
4 5
5 10
Run Code Online (Sandbox Code Playgroud)
我希望结果如下:
BannerID BannerWeight
5 10
2 5
4 5
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有:
SELECT TOP 3 b.BannerID, b.BannerWeight FROM CMS_Banner b
INNER JOIN CMS_BannerCategory c ON b.BannerCategoryID = c.BannerCategoryID
WHERE c.BannerCategoryName LIKE 'HomepageSponsors'
ORDER BY NEWID()
Run Code Online (Sandbox Code Playgroud)
一旦得到它们,我就无法弄清楚如何订购这3个随机行.我试过了
ORDER BY BannerWeight, NEWID()
Run Code Online (Sandbox Code Playgroud)
但这只能让我获得3个随机行,其中BannerWeight为5.
这是一个SQLFiddle:http://sqlfiddle.com/#!6/a8088/2/0
最简单的选择(我认为)是使用子查询:
Select * from
(
SELECT TOP 3 b.BannerID, b.BannerWeight FROM Banners b
ORDER BY NEWID()
) a
order by a.bannerweight
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
168 次 |
| 最近记录: |