簡體   English   中英

Oracle SQL 將統一隨機數添加到列

[英]Oracle SQL add uniform random numbers to column

我想根據現有列加上一些統一的隨機數創建一個新列。

數據

-- borrowed from https://stackoverflow.com/q/7745609/808921

CREATE TABLE IF NOT EXISTS `docs` (
  `id` int(6) unsigned NOT NULL,
  `rev` int(3) unsigned NOT NULL,
  `content` float unsigned NOT NULL,
  PRIMARY KEY (`id`,`rev`)
) DEFAULT CHARSET=utf8;
INSERT INTO `docs` (`id`, `rev`, `content`) VALUES
  ('1', '1', '1.24546'),
  ('2', '1', '1.245546546'),
  ('1', '2', '1.25654546'),
  ('1', '3', '1.2421323546');

根據此處的 OracleSQL 文檔,我嘗試了:

SELECT id, rev, content,
  content + DBMS_RANDOM.VALUE AS content2
FROM docs

考慮到隨機性,這里顯然沒有“預期輸出”,但我希望架構+代碼足夠清晰,以展示我想要實現的目標

嘗試這個

SELECT id, rev, content,
  content + DBMS_RANDOM.VALUE(1,10) AS content2
FROM docs

您必須使用起始值和結束值作為 dbms_random function 中的參數。

SELECT id, rev, content,
  content + DBMS_RANDOM.VALUE(1, 20) AS content2  -- 1 - Start value, 20 - End value
FROM docs;

但不知道為什么你想要 select 隨機數並將其添加到原始值。 如果這是您的要求,上面是查詢

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM