我不知道如何从以下查询中选择前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()
)
答案 0 :(得分:4)
唯一的错误是:
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
会影响结果顺序,所以当它们有其他问题时可靠性)
答案 1 :(得分:1)
试试这个
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位,您也可以直接从内部查询中选择前8位,将top 100
替换为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()
答案 2 :(得分:0)
试试这个
SELECT TOP 8 * FROM
(
SELECT TEXT, ID, Details
FROM tblTEXT
WHERE (ID = 12 or ID = 13 or ID =15)
)X ORDER BY newid()
答案 3 :(得分:-1)
您需要指定要从结果中返回的内容: *意味着你想要看到每一件事。
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()
)