ORACLE隨機抽取記錄,以及記錄出現概率

 有表t_sys_data_dict,字段data1value,內容如下:

 

  1. 健康或良好  
  2. 一般或較弱  
  3. 有慢性病  
  4. 心血管病  
  5. 腦血管病  
  6. 慢性呼吸系統病  
  7. 慢性消化系統病(包括潰瘍、肝炎及肝硬化)  
  8. 慢性腎炎  
  9. 結核病  
  10. 糖尿病  
  11. 神經或精神疾病  
  12. 其他慢性病  
  13. 有生理缺陷  
  14. 聾啞  
  15. 盲人  
  16. 高度近視  
  17. 其他缺陷  
  18. 殘廢  
  19. 特等殘廢  
  20. 一等殘廢  
  21. 二等甲級殘廢  
  22. 二等乙級殘廢  
  23. 三等甲級殘廢  
  24. 三等乙級殘廢  
  25. 其他殘廢  
  26.  

一、隨機抽取一條記錄:

 

  1. select key1value 
  2.   from (select key1value 
  3.           from t_sys_data_dict 
  4.          order by dbms_random.value) 
  5.  where rownum = 1; 

二、指定抽取概率:

1、指定第一條記錄抽取概率:

 

  1. select data1value 
  2.   from t_sys_data_dict sample(90) 
  3.  where rownum = 1 

第一條90%的抽取機率

2、指定第二條記錄抽取概率

 

  1. select data1value 
  2.   from (select data1value, rownum rn from t_sys_data_dict sample(90)) 
  3.  where rn = 2 

以上記錄類似。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章