Sql server 用于随机记录的SQL Server子句
我有一个表,其列[Star]整数的值可以是1、2或3 我有很多记录 如何从表中选择第一个选择其[Star]列为3值的100条记录Sql server 用于随机记录的SQL Server子句,sql-server,Sql Server,我有一个表,其列[Star]整数的值可以是1、2或3 我有很多记录 如何从表中选择第一个选择其[Star]列为3值的100条记录 然后选择带有2个值的[Star],最后选择带有1个值的[Star]。按NEWID排序将产生随机结果 select top 100 * from your_table where star = 1 union all select top 100 * from your_table where star = 2 union all select top 100 *
然后选择带有2个值的[Star],最后选择带有1个值的[Star]。按NEWID排序将产生随机结果
select top 100 * from your_table where star = 1
union all
select top 100 * from your_table where star = 2
union all
select top 100 * from your_table where star = 3
SELECT *
FROM (
SELECT TOP (100) * FROM TABLE_NAME
WHERE [Star] = 3
ORDER BY NEWID()
) r3
UNION ALL
SELECT *
FROM (
SELECT TOP (100) * FROM TABLE_NAME
WHERE [Star] = 2
ORDER BY NEWID()
) r2
UNION ALL
SELECT *
FROM (
SELECT TOP (100) * FROM TABLE_NAME
WHERE [Star] = 1
ORDER BY NEWID()
) r3
如果只需要总共100条随机记录,您可以调整前n条,如果您需要前3条、2条、1条,但只有前100条使用:
Select Top (100) *
from your_table
where [Star] in (1,2,3)
Order by [Star] desc
如果没有,请添加一些澄清/示例数据并输出到您的问题。谢谢大家,但我返回的记录总数应该是100,
Select Top (100) *
from your_table
where [Star] in (1,2,3)
Order by [Star] desc