有点疑惑
select id,newid() from dizigui where id = 342
union
select top 3 id,newid() from dizigui where id != 341 and id != 342 order by newid()
执行这条语句时
除342这条记录
剩余的3条总是表的前3条记录
只是顺序不同而已
而
select top 3 id,newid() from dizigui where id != 341 and id != 342 order by newid()
单独执行这条语句
总是能随机的抽取3条记录
---为什么呢
我的目的是想除342这叫记录之外,另外3条记录是随机取出来的
[解决办法]
试试这个
select id,newid() from dizigui where id = 342
union
select top 3 id,newid() from dizigui where id != 341 and id != 342 order by checksum(newid())
[解决办法]
select Pid from Product where pid=20
union
select PID from (select top 3 PID,NEWID() as a from Product order by checksum(newid()))A