返回信息流现有Oracle中一视图v_finaldata,
要求从中随机抽取100条记录,
但有n(n<100)条记录必须被捡出,
已经将这n条记录用sign字段以sign=1(其他sign=0)做出标识,
那么查询语句该怎么写?
其实就是一抽奖程序,但内定有人必须得奖,
TMD必须得奖的去吃屎吧
这是一条镜像帖。来源:北邮人论坛 / database / #4767同步于 2010/8/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
呼唤高手师兄解决一个很小但比较棘手的问题
jinchenguang
2010/8/30镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
1、SELECT * FROM v_finaldata WHERE sign = 1;称为【结果集A】
2、SELECT * FROM v_finaldata WHERE sign = 0 LIMIT 100;称为【结果集B】
3、接下来的事情就很简单了...
【 在 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))
谢谢!!
【 在 coolfantasy 的大作中提到: 】
2、SELECT * FROM v_finaldata WHERE sign = 0 LIMIT 100;称为【结果集B】
这个语句在oracle sql developer会报错ORA-00933 SQL command not properly ended. 好像不认limit这个关键字,还是这个语句不该这样写
用类似功能的关键字就好了
【 在 xiabiqiong 的大作中提到: 】
: 2、SELECT * FROM v_finaldata WHERE sign = 0 LIMIT 100;称为【结果集B】
: 这个语句在oracle sql developer会报错ORA-00933 SQL command not properly ended. 好像不认limit这个关键字,还是这个语句不该这样写