首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

有点疑惑解决方案

2013-01-26 
有点疑惑select id,newid() from dizigui where id 342 unionselect top 3 id,newid() from dizigui whe

有点疑惑

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


热点排行
Bad Request.