4
我正在生成一些測試數據並使用dbms_random
。我遇到了一些奇怪的行爲在JOIN
的條件使用dbms_random
的時候,我無法解釋:使用隨機值作爲連接條件
------------------------# test-data (ids 1 .. 3)
With x As (
Select Rownum id From dual
Connect By Rownum <= 3
)
------------------------# end of test-data
Select x.id,
x2.id id2
From x
Join x x2 On (x2.id = Floor(dbms_random.value(1, 4)))
Floor(dbms_random.value(1, 4))
返回一個隨機數出來的(1,2,3),所以我本來期望x
的所有行將與x2
的隨機行連接,或者在隨機數僅被評估一次的情況下可能總是與x2
相同的隨機行連接。
在嘗試了幾次,我得到這樣的結果,雖然:
(1) ID ID2 (2) ID ID2 (3)
---- ---- ---- ---- no rows selected.
1 2 1 3
1 3 2 3
2 2 3 3
2 3
3 2
3 3
我缺少什麼?
編輯:
SELECT ROWNUM, FLOOR(dbms_random.VALUE (1, 4))
FROM dual CONNECT BY ROWNUM <= 3
將得到的結果在這種情況下,但爲什麼原來的查詢那樣做的?
謝謝,可以這樣做更容易,看到我更新的問題。我想知道爲什麼我的查詢結果是如此奇怪,雖然......任何想法? – 2010-02-05 12:31:34