首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从随机选择的SQLSERVER中选择前8行

从随机选择的SQLSERVER中选择前8行
EN

Stack Overflow用户
提问于 2013-12-20 10:57:25
回答 4查看 1.8K关注 0票数 0

我不知道如何从下面的查询中选择前8行。我对SQL非常陌生。

代码语言:javascript
运行
复制
SELECT TOP 100 PERCENT * FROM (
select TEXT, ID, Details 
from tblTEXT 
where (ID = 12 or ID = 13 or ID =15) 

) X
order by newid()

该查询提供了31行随机行,但我希望选择前8行。

我用的是下面的,但它不起作用

代码语言:javascript
运行
复制
select top 8 
from 
(
SELECT TOP 100 PERCENT * FROM (
    select TEXT, ID, Details 
    from tblTEXT 
    where (ID = 12 or ID = 13 or ID =15) 

    ) X
    order by newid()
)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-12-20 11:01:58

有什么不对的:

代码语言:javascript
运行
复制
SELECT TOP 8 * FROM (
select TEXT, ID, Details 
from tblTEXT 
where (ID = 12 or ID = 13 or ID =15) 

) X
order by newid()

(其他答案目前是不正确的,因为它们没有给出外部子查询的名称,但无论如何只有最外层查询上的ORDER BY会影响结果顺序,因此在可靠性方面还有其他问题)

票数 4
EN

Stack Overflow用户

发布于 2013-12-20 10:58:55

尝尝这个

代码语言:javascript
运行
复制
select top 8 * from 
(
SELECT TOP 100 PERCENT * FROM (
    select TEXT, ID, Details 
    from tblTEXT 
    where (ID = 12 or ID = 13 or ID =15) 

    ) X
    order by newid()
)Y

当然,您要从前100行中选择前8行,也可以通过将top 100替换为top 8来直接从内部查询中选择top 8

代码语言:javascript
运行
复制
SELECT TOP 8 * FROM (
select TEXT, ID, Details 
from tblTEXT 
where (ID = 12 or ID = 13 or ID =15) 

) X
order by newid()
票数 1
EN

Stack Overflow用户

发布于 2013-12-20 11:02:56

尝尝这个

代码语言:javascript
运行
复制
SELECT TOP 8 * FROM
(     
      SELECT TEXT, ID, Details 
      FROM tblTEXT 
      WHERE (ID = 12 or ID = 13 or ID =15)
)X  ORDER BY newid()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20702064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档