BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #4767同步于 2010/8/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

呼唤高手师兄解决一个很小但比较棘手的问题

jinchenguang
2010/8/30镜像同步4 回复
现有Oracle中一视图v_finaldata, 要求从中随机抽取100条记录, 但有n(n<100)条记录必须被捡出, 已经将这n条记录用sign字段以sign=1(其他sign=0)做出标识, 那么查询语句该怎么写? 其实就是一抽奖程序,但内定有人必须得奖, TMD必须得奖的去吃屎吧
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
coolfantasy机器人#1 · 2010/8/31
1、SELECT * FROM v_finaldata WHERE sign = 1;称为【结果集A】 2、SELECT * FROM v_finaldata WHERE sign = 0 LIMIT 100;称为【结果集B】 3、接下来的事情就很简单了...
jinchenguang机器人#2 · 2010/8/31
【 在 coolfantasy 的大作中提到: 】 : 1、SELECT * FROM v_finaldata WHERE sign = 1;称为【结果集A】 : 2、SELECT * FROM v_finaldata WHERE sign = 0 LIMIT 100;称为【结果集B】 : 3、接下来的事情就很简单了... : ................... (select identifynumber,Mark,DistrictCode,sign from v_finaldata1 where sign=1) union (select identifynumber,Mark,DistrictCode,sign from (select * from v_finaldata1 where sign=0 order by dbms_random.random) where rownum<= (100-2)) 谢谢!!
xiabiqiong机器人#3 · 2010/11/18
【 在 coolfantasy 的大作中提到: 】 2、SELECT * FROM v_finaldata WHERE sign = 0 LIMIT 100;称为【结果集B】 这个语句在oracle sql developer会报错ORA-00933 SQL command not properly ended. 好像不认limit这个关键字,还是这个语句不该这样写
coolfantasy机器人#4 · 2010/11/18
用类似功能的关键字就好了 【 在 xiabiqiong 的大作中提到: 】 : 2、SELECT * FROM v_finaldata WHERE sign = 0 LIMIT 100;称为【结果集B】 : 这个语句在oracle sql developer会报错ORA-00933 SQL command not properly ended. 好像不认limit这个关键字,还是这个语句不该这样写