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 ...
随机推荐
- Xcode 安装插件管理器
https://github.com/alcatraz/Alcatraz运行之后, load bundle, 然后window就有pakagegemanage. 下载如下插件: 自动导入插件
- Linux进程间通信—信号量
二.信号量(semophore) 信号量是一种计数器,可以控制进程间多个线程或者多个进程对资源的同步访问,它常实现为一种锁机制.实质上,信号量是一个被保护的变量,并且只能通过初始化和两个标准的原子操作 ...
- mysql数据库维护(备份和还原)和性能提高
为了有效防止数据丢失,并将损失降到最低,应对数据库服务器做维护.数据库维护,包括数据备份,还原,导出和导入操作. 1. MySQL数据库备份 所谓数据库维护,主要包含备份数据,还原数据和数据库迁移,对 ...
- MapReduce实战--倒排索引
本文地址:http://www.cnblogs.com/archimedes/p/mapreduce-inverted-index.html,转载请注明源地址. 1.倒排索引简介 倒排索引(Inver ...
- Vue.js前后端同构方案之准备篇——代码优化
收录待用,修改转载已取得腾讯云授权 导语 目前Vue.js的火爆不亚于当初的React,本人对写代码有洁癖,代码也是艺术.此篇是准备篇,工欲善其事,必先利其器.我们先在代码层面进行优化,对我们完成整个 ...
- Nodejs 天涯帖子《鹿鼎记中计》 柳成萌著 下载爬虫
功能:从天涯帖子中下载楼主发言到一个文本文件中 实验对象:http://bbs.tianya.cn/post-no05-308123-1.shtml <鹿鼎记中计> 柳成萌著 爬取效果: ...
- C++ 之 基础回顾(一)
1 exe 程序
- Mysqldump参数大全(参数来源于mysql5.5.19源码)
参数 参数说明 --all-databases , -A 导出全部数据库. mysqldump -uroot -p --all-databases --all-tablespaces , -Y ...
- 算法笔记_045:币值最大化问题(Java)
目录 1 问题描述 2 解决方案 2.1 动态规划法 1 问题描述 给定一排n个硬币,其面值均为正整数c1,c2,...,cn,这些整数并不一定两两不同.请问如何选择硬币,使得在其原始位置互不相邻 ...
- GridLayout with span
Widgets can span multiple columns or rows in a grid. In the next example we illustrate this. #!/usr/ ...