我有三个查询,我希望由这些查询的条目组成的结果行随机连接在一起。
我不想合并结果,而是以或多或少随机的方式加入它们(可以保留原始分布,或者可以在所有人之间统一)。
我尝试了以下方法:
select *
from
(
SELECT street, number
FROM Addresses
WHERE valid = '1'
order by Dbms_Random.Value
) q1 ,
(
select prename
from person
order by Dbms_Random.Value
) q2 ,
(
select surname
from person
order by Dbms_Random.Value
) q3
然而,我的结果集看起来一点也不随机:
Main street, 1, Andre, Smith
Main street, 1, Andre, Warnes
Main street, 1, Andre, Jackson
Main street, 1, Andre, Macallister
从查询中删除ORDER BY
并将其应用于笛卡尔积的结果是非常低效的,因为表很大,尤其是它们的笛卡尔积。