gpt4 book ai didi

sql - 为什么我在 postgres 中使用随机函数在 select 中获得多条记录?

转载 作者:行者123 更新时间:2023-12-04 15:36:54 24 4
gpt4 key购买 nike

这是我的查询:

SELECT id, geom from lars.punkt where id = (floor(random () * 99))::integer;

这是结果:

id    geom
40 "010100000000000000000010400000000000000000"
80 "010100000000000000000020400000000000000000"
88 "010100000000000000000020400000000000002040"

发生了什么事?我也可以获得 2 行或零行。

我期待 1 行。

是“慢”的数据库还是代码?

最佳答案

I am expecting 1 line.

每行调用随机函数,这就是为什么您有零个、一个或多个匹配项。 CROSS JOIN 可用于生成在 WHERE 条件下使用的单个随机值:

SELECT id, geom 
from lars.punkt
CROSS JOIN(SELECT (floor(random () * 99)::integer)) s(c) --generate single random value
where id = s.c;

db<>fiddle demo - run multiple times

关于sql - 为什么我在 postgres 中使用随机函数在 select 中获得多条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59436379/

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