我有一列[Star]
(Integer
),可以有1或2或3随机记录SQL Server的条款
值我有很多记录的表。
我如何选择我的表100分的记录,首先选择它[Star]
列3个值 然后选择[Star]
2值和最终选择[Star]
1倍的值?
我有一列[Star]
(Integer
),可以有1或2或3随机记录SQL Server的条款
值我有很多记录的表。
我如何选择我的表100分的记录,首先选择它[Star]
列3个值 然后选择[Star]
2值和最终选择[Star]
1倍的值?
,2,然后1,但只有前100用途:
Select Top (100) *
from your_table
where [Star] in (1,2,3)
Order by [Star] desc
如果不是,请添加一些澄清/样本数据并输出到您的问题。
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 TOP 100 * FROM <TABLE> WHERE [Star] = 3
UNION ALL
SELECT TOP 100 * FROM <TABLE> WHERE [Star] = 2
UNION ALL
SELECT TOP 100 * FROM <TABLE> WHERE [Star] = 1
订购NEWID()会产生随机结果。
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个随机记录您可以根据需要调整TOP(n)的,如果你想第一个3
谢谢大家,但是我的总返回记录应该是100, – user3404171 2014-10-05 02:09:38