我不知道如何从下面的查询中选择前8行。我对SQL非常陌生。
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行。
我用的是下面的,但它不起作用
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()
)
发布于 2013-12-20 11:01:58
有什么不对的:
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
会影响结果顺序,因此在可靠性方面还有其他问题)
发布于 2013-12-20 10:58:55
尝尝这个
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
SELECT TOP 8 * FROM (
select TEXT, ID, Details
from tblTEXT
where (ID = 12 or ID = 13 or ID =15)
) X
order by newid()
发布于 2013-12-20 11:02:56
尝尝这个
SELECT TOP 8 * FROM
(
SELECT TEXT, ID, Details
FROM tblTEXT
WHERE (ID = 12 or ID = 13 or ID =15)
)X ORDER BY newid()
https://stackoverflow.com/questions/20702064
复制相似问题