我想知道如何创建一个生成以下格式的随机电话号码的函数:
(888) 888-8888
最佳答案
使用 to_char()
效果更好
SELECT to_char(random() * 10000000000, 'FM"("000") "000"-"0000');
比我原来的更简单、更快。将随机数乘以 10^N 得到逗号前的 N 个随机数字。 FM
modifier代表“填充模式”并防止使用前导空格字符进行填充。见:
这个更简单的形式也有效:
SELECT to_char(random() * 10000000000, 'FM(000) 000-0000');
双引号只是将常量字符串添加到输出模式的安全方式(禁用可能的特殊含义)。
原始答案
SELECT format('(%s%s%s) %s%s%s-%s%s%s%s'
, a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10])
FROM (
SELECT ARRAY (
SELECT trunc(random() * 10)::int
FROM generate_series(1, 10)
) AS a
) sub;
要么返回:
(213) 633-4337
或类似的。
关于sql - 生成随机电话号码的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36393416/