【问题标题】:SQL Server & ASP.NET & C# : select 5 random images from top 20 imagesSQL Server & ASP.NET & C#:从前 20 个图像中选择 5 个随机图像
【发布时间】:2015-12-29 10:45:15
【问题描述】:

我有一点 SQL 问题。

我想从ID 最高的 20 行中随机选择 5 行。我怎么做?目前我的SqlDataSource 看起来像这样:

<asp:SqlDataSource ID="SqlDataSource25" runat="server" 
     ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString1 %>"
     ProviderName="<%$ ConnectionStrings:DatabaseConnectionString1.ProviderName %>"
     SelectCommand="SELECT TOP 5 * FROM [billeder] ORDER BY newid()">  
</asp:SqlDataSource>

这意味着我当然只是从整个表中随机获得 5 个。

我更愿意通过SqlDataSource 来实现,正如您在此处看到的那样,但如果只能通过代码隐藏来实现,那也可以。任何提示将不胜感激。

【问题讨论】:

    标签: c# sql asp.net sql-server localhost


    【解决方案1】:

    您需要使用子查询按ID获取前20个,然后从这20个中选择前5个:

    SELECT TOP 5 * 
    FROM (  SELECT  TOP 20 * 
            FROM [billeder] 
            ORDER BY ID DESC
        ) AS t 
    ORDER BY NEWID();
    

    【讨论】:

    • 谢谢你,这让它工作了! :) 也感谢其他所有人的快速支持,非常感谢你们。
    【解决方案2】:
    select  * from [billeder] where [yourPk] in 
    (select top 5 percent [yourPk] from [billeder] order by newid())
    

    yourPk 是主键

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多