具体是这样的,
我有一个表,其中有一个记录类型的字段,
我想在每一种类型中查找返回固定数量的随机结果。
下了SQL语句如下:
SELECT * FROM [TableName]
WHERE
([ID] IN (SELET TOP 1 {ID] FROM [TableName] WHERE [Type]='1' ORDER BY NEWID()))
OR
([ID] IN (SELET TOP 2 {ID] FROM [TableName] WHERE [Type]='2' ORDER BY NEWID()))
OR
([ID] IN (SELET TOP 3 {ID] FROM [TableName] WHERE [Type]='3' ORDER BY NEWID()));为什么这样写出来的语句查询的结果是在总数量上下摆动的一个集,
也就是说如果我想查总共6条记录,也许返回2~10条每次不等。
这是为什么,有什么逻辑错误呢?怎么改正?
为什么只用一个条件,不用OR并上其他条件就可以顺利查询想要的结果?