DB2中如何取得随机数
转自:http://blog.csdn.net/jionghan3855/article/details/2246738
在DB2数据库自定义产生指定位数的随机数函数。
DB2产生随机数的函数:RAND()
例:SELECT INT(RAND()*100) FROM SYSIBM.SYSDUMMY1; --产生0-100之间的随机数。
注:RAND()返回的为0-1之间的任意浮点数,所以需要使用INT将浮点数转换为整数,去掉小数位。
如果生成固定位数的随机数,需要自己写函数实现。
在 ORACLE中,提供了补位的方法供调用(lpad()),但在DB2中没有相应的函数。
以下是我写的产生固定位数随机数的函数:

SET SCHEMA DB2INST1;
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","DB2INST1";
CREATE FUNCTION DB2INST1.F_RANDOM
("IN_LENGTH" INTEGER
)
RETURNS INTEGER
SPECIFIC DB2INST1.F_RANDOM
LANGUAGE SQL
NOT DETERMINISTIC
READS SQL DATA
STATIC DISPATCH
CALLED ON NULL INPUT
EXTERNAL ACTION
INHERIT SPECIAL REGISTERS
BEGIN atomic
declare v_newLength INTEGER;
declare v_random INTEGER;
declare v_length INTEGER;
declare v_index INTEGER;
declare out_result VARCHAR(30);
IF in_length > 30 THEN
RETURN 0;
END IF;
SET v_random = INTEGER(RAND()*POWER(10,in_length));
SET v_length = in_length - LENGTH(RTRIM(CHAR(v_random)));
SET v_index = 1;
SET out_result = CHAR(v_random);
WHILE v_index <= v_length DO
SET out_result = CONCAT('8',out_result);--位数不够,前面补8
SET v_index = v_index + 1;
END WHILE;
SET v_random = INTEGER(out_result);
RETURN v_random;
END;
调用自定义函数,产生8位的随机数,如下:
例:SELECT F_RANDOM(8) FROM SYSIBM.SYSDUMMY1;--产生8位的随机数。
DB2中如何取得随机数的更多相关文章
- DB2中错误信息说明
DB2错误信息SQLCODE SQLSTATE (按sqlcode排序) .分类: db2数据库 2012-10-19 11:35 2942人阅读 评论(0) 收藏 举报 db2sql存储table数 ...
- DB2中字符、数字和日期类型之间的转换
DB2中字符.数字和日期类型之间的转换 一般我们在使用DB2或Oracle的过程中,经常会在数字<->字符<->日期三种类 型之间做转换,那么在DB2和Oracle中,他们分别 ...
- 在db2中 两个数据库之间的两个表的联合查询
大家好,今天遇到了在db2中 两个数据库之间的两个表的联合查询 我知道oracle中有dblink,可是不知到db2的两个数据库联合查询怎么处理我找了类似于比如两个数据库: db1,db2用户名密码s ...
- DB2中循环日期跑数据
1.数据库版本: 2.具体实现方式: ),)) /*************************************************************************** ...
- DB2中的系统表SYSIBM.SYSDUMMY1
ORACLE中有一张系统数据库表DUAL用来访问系统的相关信息 SELECT SYSDATE FROM DUAL; --返回当前系统日期 ------------------------------ ...
- DB2 中日期 比较
在DB2中的Date 一共识别三种格式,最常见的是这样 '2013-12-12' 对,你没看错,DB2认为这样的字符串就是Date数据 然后我们可以利用函数这样寻找日期区间 select * from ...
- JS中实现种子随机数
参数: 详谈JS中实现种子随机数及作用 我在Egret里这么写... class NumberTool{ /**种子(任意默认值5)*/ public static seed:number = 5; ...
- 从Linux内核中获取真随机数【转】
转自:http://www.cnblogs.com/bigship/archive/2010/04/04/1704228.html 内核随机数产生器 Linux内核实现了一个随机数产生器,从理论上说这 ...
- DB2中的数据类型
DB2中的数据类型DB2内置数据类型可以分成数值型(numeric).字符串型(character string).图形字符串(graphic string).二进制字符串型(binary strin ...
随机推荐
- MFC HTML的img显示摄像头图像
cv::VideoCapture vc; vc.open(0); cv::Mat temp; vc.read(temp); //cv::resize(temp,temp,cv::Size(320,24 ...
- 基于Spring Boot和Spring Cloud实现微服务架构学习--转
原文地址:http://blog.csdn.net/enweitech/article/details/52582918 看了几周spring相关框架的书籍和官方demo,是时候开始总结下这中间的学习 ...
- JAVA中split对空串的影响。
public class SplitEmptyString { /** * @param args */ public static void main(String[] args) { // 空串的 ...
- jquery翻页
http://js.itivy.com/simplePagination.js/index.html#page-10 http://www.oschina.net/news/41941/7-html5 ...
- 从业者生存质量报告之,教育行业里的IT男
当教育遇上互联网,非常多传统教育机构都卡在了技术这道门槛上. 一位教育机构创始人曾这样感叹说:"技术须要文化基因.氛围.教育行业不知道技术这帮兄弟须要什么样的文化,什么样的工作氛围,怎么管理 ...
- 从头学习MVC4基础之视图
实例一:首先简单显示实例: 控制器代码: public class WujyTestController : Controller { public ActionResult Index() { Li ...
- ant design pro (九)引入外部模块
一.概述 原文地址:https://pro.ant.design/docs/import-cn 除了 antd 组件以及脚手架内置的业务组件,有时我们还需要引入其他外部模块,这里以引入富文本组件 re ...
- 移动端项目中 @2x 图 和 @3x 图 的使用
移动端开发过程中,因为手机的dpr(设备像素比不同),我们需要根据dpr来修改图标的大小: 1.通过mixin,动态修改图标的背景图片.通过@media (媒体查询),判断设备的dpr. @mixin ...
- Guava ---- Ordering排序工具
使用Guava的排序工具类, 高速实现对象的单变量排序和多变量排序, 让你的开发效率爆炸... import com.google.common.collect.Lists; import com.g ...
- javascript&jquery 判断滚动到页面底部
js 判断滚动到页面底部 CreateTime--2018年4月14日10:13:07 Author:Marydon 1.使用场景: 滚动到屏幕底部,触发加载分页数据请求(qq空间,手机端) 2. ...