代码之家  ›  专栏  ›  技术社区  ›  Santhosh

postgresql:postgresq创建空到100之间的随机整数

  •  0
  • Santhosh  · 技术社区  · 3 年前

    我想生成一个包含1000行数据的表

    -- random int between `1-100` (including 1 and 100)
    -- random int between `1-100` and also null (including 1 and 100)
    -- random float between `0-100` (including 0 and 100)
    -- random float between `0-100`and also null (including 0 and 100)
    -- random Male (M) and Female (F) i.e M/F values
    -- random Male (M) and Female (F) including null/empty i.e M/F values
    -- random names of cities from a list (i.e newyork, london, mumbai, dubai etc)
    -- random names of cities from a list including null/empty (i.e newyork, london, mumbai, dubai etc)
    

    现在我知道了

    create table foo as select random() as test,
    from generate_series(1,1000) s(i);
    

    1 回复  |  直到 3 年前
        1
  •  0
  •   Laurenz Albe    3 年前

    您可以使用乘法和类型转换或 CASE 表达。

    integer 在42和1001之间:

    42 + CAST (floor(random() * 960) AS integer)
    

    我想不出一个方法来产生一个 double precision 双精度 .

    得到 m f 均匀分布:

    CASE WHEN random() < 0.5 THEN `m` ELSE `f` END