SELECT area_name,rn FROM (select area_name,rownum rn from code_area) WHERE rn=trunc(DBMS_RANDOM.value(1,11));子查询是肯定有记录的,搞不清楚为什么有时返回多条记录,有时又一条记录都没有

解决方案 »

  1.   

    那是自然,你的随机数是1-11
    你说你的子查询有10条纪录
    那当trunc(DBMS_RANDOM.value(1,11)出来的数=11时
    要rn=11
    那自然是没符合条件的
      

  2.   

    where 字句下好像不允许用函数吧,用函数要改用分组和having字句
      

  3.   

    随机数是1-11 trunc(DBMS_RANDOM.value(1,11)); 
      

  4.   

    SELECT area_name,rn FROM (select area_name,rownum rn from code_area) WHERE rn=trunc(DBMS_RANDOM.value(1,11)); 
    我怎么看着是要么返回一条纪录
    要么是一条也不返回呢..
      

  5.   

    随机数是1-11 trunc(DBMS_RANDOM.value(1,11)); 
      

  6.   

    啊。r = dbms_random.value(m,n)
    这个返回值范围不是 m <= r < n ?
      

  7.   

    这么怪异的语句!!!
    子查询干什么的?
    exists可以吗?