我正在使用ORACLE数据库,我试图从我的SQL查询中访问一个随机行但是查询没有检索到一个随机行,我不确定我做错了什么?
我的查询是:
SELECT a.car_id, b.product_id
FROM listing a, carProduct b
WHERE a.car_id = b.car_id
AND a.certified = 'TRUE'
AND b.product_id like '%CERT'
AND rownum = 1
ORDER BY DBMS_RANDOM.RANDOM
答案 0 :(得分:3)
<{1}}后,rownum
必须 。你需要一个子查询:
order by
注意:
SELECT lcp.*
FROM (SELECT l.car_id, cp.product_id
FROM listing l join
carProduct cp
on l.car_id = cp.car_id
WHERE l.certified = 'TRUE' AND cp.product_id like '%CERT'
ORDER BY DBMS_RANDOM.RANDOM
) lcp
WHERE rownum = 1;
语法。简单规则:从不在JOIN
子句中使用逗号。FROM
需要进入外部查询。rownum = 1
。