【数据库】SQL-随机生成区间内数值、日期、字符串,mock数据
〇、概述
1、参考
2、其他
一、随机生成数值
1、随机生成函数random_int()
-- 随机数生成函数,int版
CREATE OR REPLACE FUNCTION random_int(
start_num INT,
end_num INT
)
RETURNS INT
AS $BODY$
BEGIN
-- 功能,生成最小值为start_num,最大值为end_num的随机数
RETURN FLOOR(start_num + random() * (end_num - start_num + 1));
END;
$BODY$
LANGUAGE plpgsql VOLATILE
2、随机生成函数random_bigint()
-- 随机数生成函数,bigint版
CREATE OR REPLACE FUNCTION random_bigint(
start_num BIGINT,
end_num BIGINT
)
RETURNS BIGINT
AS $BODY$
BEGIN
-- 功能,生成最小值为start_num,最大值为end_num的随机数
RETURN FLOOR(start_num + random() * (end_num - start_num + 1));
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 1
3、随机生成函数random_smallint()
-- 随机数生成函数,smallint版
CREATE OR REPLACE FUNCTION random_int(
start_num smallint,
end_num smallint
)
RETURNS smallint
AS $BODY$
BEGIN
-- 功能,生成最小值为start_num,最大值为end_num的随机数
RETURN FLOOR(start_num + random() * (end_num - start_num + 1));
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 1
可以将1、2、3同名,会根据输入参数自动匹配
二、随机生成时间
1、随机生成身份证号
https://blog.csdn.net/weixin_40001924/article/details/112894936
三、生成数组内的随机值
函数定义:
CREATE OR REPLACE FUNCTION "ap"."get_random_code"(_text)
RETURNS "pg_catalog"."varchar" AS $BODY$
DECLARE
-- start_int ALIAS FOR $1;
arr ALIAS FOR $1;
BEGIN
RETURN arr[random()*array_length(arr, 1)];
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
函数调用:
SELECT get_random_code(ARRAY['1','22','11','3','7'])
四、生成随机XX编码
函数定义:
CREATE OR REPLACE FUNCTION "ap"."get_random_areacode"()
RETURNS "pg_catalog"."varchar" AS $BODY$
DECLARE
-- start_int ALIAS FOR $1;
arr VARCHAR[] := ARRAY(SELECT area_id FROM ap.dim_region_code) ;
BEGIN
RETURN arr[ap.get_random_number(1,array_length(arr, 1))];
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
本文来自博客园,作者:哥们要飞,转载请注明原文链接:https://www.cnblogs.com/liujinhui/p/16664056.html
分类:
数据库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2021-09-07 【算法题型总结】--6、链表