生成一系列数字

问题描述 投票:0回答:1

我正在尝试在某些条件下在 PostgreSQL 中生成随机序列号。

  1. 数字需要以相同的 3 个字母 YAK 开头。
  2. YAK之后需要8位随机数字。
  3. 我只需要做 10 次迭代。

我知道我应该尝试从generate_series()开始,但是我可以像在python中那样使用RANDOM()吗?我对用任何语言生成数据都很陌生,因此欢迎任何建议。谢谢。

postgresql random generate-series
1个回答
0
投票

你似乎拥有了所有的积木,你只需要将它们组合在一起即可:

  • generate_series
    可以在
    from
    子句中使用来生成 10 行
  • 对于每一行,您可以使用
    random
    并将其乘以 100,000,000 以生成 0 到 99,999,999 之间的随机数。
  • 然后,您只需将该数字填充到八位数字,并在其前面加上“YAK”即可:
SELECT CONCAT('YAK', LPAD(FLOOR(RANDOM() * 100000000)::TEXT, 8, '0'))
FROM   GENERATE_SERIES(1, 10)

SQLFiddle 演示

© www.soinside.com 2019 - 2024. All rights reserved.