通过Oracle在随机行上进行SQL查询

时间:2016-09-30 19:03:48

标签: sql oracle

我正在使用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

1 个答案:

答案 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需要进入外部查询。
  • 在Oracle 12c +中,您不需要子查询。您可以使用rownum = 1