gpt4 book ai didi

java - DBMS_RANDOM 似乎不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 06:17:28 24 4
gpt4 key购买 nike

我对 Oracle SQL 还很陌生,但我在互联网上搜索了一下,发现能够从表中随机提取一行,并看到了这样的代码。

firstNameGen = connection.prepareStatement(
"SELECT firstName "
+"FROM (SELECT firstName "
+"FROM firstNames "
+"ORDER BY dbms_random.value) "
+"WHERE ROWNUM = 1");

这对我不起作用。显然,我确实更改了所有列和表名称以匹配我自己的数据库,但它只是告诉我“错误 42X01:语法错误:在第 1 行第 58 列遇到“WHERE”。”

我正在 Eclipse 中工作。我是否需要导入功能才能使用 dbms_random 或者我只是错过了一些东西?任何帮助将不胜感激。

最佳答案

我不确定,但按 dbms_random.value may 排序使用额外层(例如 jdbc)时无法正常工作。当您通过<expression returning a number>订购时也是如此, it orders by the expression ,不是“列”,但是您只想显示一个值,我可以说两种替代方法:

  1. 只需将 dbms_random.value 作为一列添加到查询中并按其排序即可。

    select * from (select
    firstName
    , dbms_random.value as ran
    from firstNames
    order by ran)
    where rownum=1;
  2. 使用示例()

    select firstName
    from firstNames sample (1)
    where rownum =1;

关于java - DBMS_RANDOM 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27899999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com