这样查询出来的是支出判定条件的结果,我想要的是比如说:select * from tb where 日期 = '140301'查询出来1000条记录,我随机取其中的10条记录显示。 SELECT top 10 * FROM tb a WHERE ((SELECT COUNT(*) FROM tb WHERE 日期 = a.日期) > 200) ORDER BY NEWID select * from tb where 日期 = '140228'查询出来150条记录,我随机取其中的5条记录显示。 select * from tb where 日期 SELECT top 5 * FROM tb a WHERE ((SELECT COUNT(*) FROM tb WHERE 日期 = a.日期) < 200) ORDER BY NEWID 但是日期很多,我无法一个个去查询,而且要满足记录条数。
哦 我看懂了 根据数据量的条数来判断对吧。 应该是这个意思。DECLARE @countnum INT SELECT @countnum=COUNT(1) FROM tb IF @countnum<200 SELECT TOP 5 * FROM tb ORDER BY NEWID() IF @countnum>200 AND @countnum<600 SELECT TOP 10* FROM tb ORDER BY NEWID()
修改一下 没看见是每天的 DECLARE @countnum INT SELECT TOP 1 @countnum=num FROM (SELECT COUNT(1) AS num,日期 FROM tb GROUP BY 日期)AS t ORDER BY num DESC
IF @countnum<200 SELECT TOP 5 * FROM tb ORDER BY NEWID() IF @countnum>200 AND @countnum<600 SELECT TOP 10* FROM tb ORDER BY NEWID()
SELECT top 10 *
FROM tb a
WHERE ((SELECT COUNT(*)
FROM tb WHERE 日期 = a.日期) > 200)
ORDER BY NEWID
select * from tb where 日期 = '140228'查询出来150条记录,我随机取其中的5条记录显示。
select * from tb where 日期
SELECT top 5 *
FROM tb a
WHERE ((SELECT COUNT(*)
FROM tb WHERE 日期 = a.日期) < 200)
ORDER BY NEWID
但是日期很多,我无法一个个去查询,而且要满足记录条数。
应该是这个意思。DECLARE @countnum INT
SELECT @countnum=COUNT(1) FROM tb IF @countnum<200
SELECT TOP 5 * FROM tb ORDER BY NEWID()
IF @countnum>200 AND @countnum<600
SELECT TOP 10* FROM tb ORDER BY NEWID()
DECLARE @countnum INT
SELECT TOP 1 @countnum=num FROM (SELECT COUNT(1) AS num,日期 FROM tb GROUP BY 日期)AS t ORDER BY num DESC
IF @countnum<200
SELECT TOP 5 * FROM tb ORDER BY NEWID()
IF @countnum>200 AND @countnum<600
SELECT TOP 10* FROM tb ORDER BY NEWID()