You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL如何生成含1000行多类型随机值的数据表

PostgreSQL生成含指定随机值的1000行表实现方案

各字段随机值生成逻辑

  • 1-100闭区间随机整数:利用random()返回[0,1)浮点数的特性,缩放后转整数即可,表达式为floor(random() * 100 + 1)::int
  • 含空值的1-100随机整数:通过随机数判断是否返回空,可自行调整空值概率,示例中空值概率为20%,表达式为case when random() < 0.2 then null else floor(random() * 100 + 1)::int end
  • 0-100闭区间随机浮点数:直接对random()结果缩放,若需要严格包含100可微调乘数抵消random()的开区间特性,表达式为random() * 100.00001
  • 含空值的0-100随机浮点数:同上增加空值判断逻辑,表达式为case when random() < 0.2 then null else random() * 100.00001 end
  • 随机M/F性别值:按50%概率随机返回两种值,表达式为case when random() < 0.5 then 'M' else 'F' end
  • 含空值的随机M/F性别值:增加空值判断逻辑,表达式为case when random() < 0.2 then null when random() < 0.5 then 'M' else 'F' end
  • 固定列表内随机城市:先定义城市数组,再通过随机下标取值,数组长度和元素可自行修改,表达式为(array['newyork', 'london', 'mumbai', 'dubai'])[floor(random() * 4 + 1)::int]
  • 含空值的随机城市:增加空值判断逻辑,表达式为case when random() < 0.2 then null else (array['newyork', 'london', 'mumbai', 'dubai'])[floor(random() * 4 + 1)::int] end

完整建表语句

直接执行以下语句即可生成符合要求的1000行测试表:

create table random_test as
select
  -- 1-100随机整数
  floor(random() * 100 + 1)::int as rand_int_1_100,
  -- 含空值的1-100随机整数
  case when random() < 0.2 then null else floor(random() * 100 + 1)::int end as rand_int_1_100_nullable,
  -- 0-100随机浮点数
  random() * 100.00001 as rand_float_0_100,
  -- 含空值的0-100随机浮点数
  case when random() < 0.2 then null else random() * 100.00001 end as rand_float_0_100_nullable,
  -- 随机M/F性别
  case when random() < 0.5 then 'M' else 'F' end as gender,
  -- 含空值的随机M/F性别
  case when random() < 0.2 then null when random() < 0.5 then 'M' else 'F' end as gender_nullable,
  -- 随机城市
  (array['newyork', 'london', 'mumbai', 'dubai'])[floor(random() * 4 + 1)::int] as city,
  -- 含空值的随机城市
  case when random() < 0.2 then null else (array['newyork', 'london', 'mumbai', 'dubai'])[floor(random() * 4 + 1)::int] end as city_nullable
from generate_series(1, 1000) s(i);

自定义调整说明

如果需要修改空值出现的概率,只需把case when random() < 0.2里的0.2改成对应比例即可,比如要30%概率为空就改成0.3;如果要修改城市列表,直接替换数组里的元素,同时把random() * 4里的4改成你新的城市列表长度即可。

内容的提问来源于stack exchange,提问作者Santhosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:00:01