【数据库】SQL-随机生成区间内数值、日期、字符串,mock数据
2024-09-08 16:32:09
〇、概述
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
最新文章
- Spring 01基础
- c# 支付宝查单补单
- ArrayList的toArray
- javascript div元素后追加节点
- hdu 1599 find the mincost route
- HtmlUnit+Jsoup 解决爬虫无法解析执行javascript的问题
- Linkedin工程师是如何优化他们的Java代码的(转)
- Mariadb galera 群集
- java中String相等问题
- 腾讯Web工程师的前端书单
- c#如何声明数据结构类型为null?
- Jenkins + Ansible + Gitlab之gitlab篇
- DeeplabV3+ 命令行不显示miou的解决
- Python 多线程的程序不结束多进程的程序不结束的区别
- java导出2007版word(docx格式)freemarker + xml 实现
- [leetcode]20. Valid Parentheses有效括号序列
- linux杂项
- js,javascript,删除元素,创建元素,插入子元素
- Android Studio安装和配置的方法 &; 错误解决
- IOS UITableView分组列表