小编典典

用随机数据填充表

sql

我有两个表如下。

“面积”表

|    AreaKey      |    AreaID    |
|-----------------|--------------|
| <identity/int>  |  <varchar>   |

“读数”表

|    ReadingKey   |      AreaKey      |   Reading   |    ReadingDateTime   |
|-----------------|-------------------|-------------|----------------------|
| <identity/int>  |<FK:AreaKey-Areas> |   <float>   |      <datetime>      |
  • Readings表中的“ AreaKey”是Areas表中“ AreaKey”的外键。

Areas表已经有一些数据,行ID的范围是1到50。

我想用一些示例数据填充Readings表-(“
Reading”列的随机浮点值介于1.0和100.0之间,以及给定DateTime范围之间ReadingDateTime的随机datetime值;例如,当前日期时间与3个月前的日期时间之间)
。通过 随机 选择Areas表中已经存在的AreaKeys,可以将这些值插入到Reading表中。

换句话说,我想将随机读数值插入具有随机日期时间的随机选择区域。

谁能给我一个有关如何执行此操作的线索?


阅读 172

收藏
2021-04-28

共1个答案

小编典典

假设您的Areas表有50条记录,行ID为1-50,我将研究使用该RAND函数。

像这样的事情似乎起作用:

SELECT ROUND(((50 - 1 -1) * RAND() + 1), 0) as AreakKey,
    ROUND(((100 - 1 -1) * RAND() + 1), 1) as Reading,
    DATEADD(mm,-3,GETDATE()) +
(
ABS(
    CAST(
        CAST( NewID() AS BINARY(8) ) AS INT
    )
)
%
CAST(
    (GETDATE() - DATEADD(mm,-3,GETDATE())) AS INT
    )
) as ReadingDateTime

这是一些SQL Fiddle

祝你好运。

2021-04-28