判断概率区间1%-100%是否发生的存储过程
来源:互联网 发布:淘宝前100名免单怎么看 编辑:程序博客网 时间:2024/06/17 18:45
一、实现判断概率区间10%-100%是否发生,传入参数successRate设置概率(传入50表示50%),
返回参数resultStr中yes表示在该概率中,no不在概率中
代码:
DELIMITER //
DROP PROCEDURE IF EXISTS successRateProc;CREATE PROCEDURE successRateProc(IN successRate VARCHAR(10),OUT resultStr VARCHAR(10))
BEGIN
DECLARE resultNum INT;
DECLARE fromNum INT DEFAULT 1;
DECLARE toNum INT DEFAULT 10;
SET resultNum = CONVERT((SELECT FLOOR(fromNum+Rand()*(toNum-fromNum+1))),UNSIGNED);
CASE successRate
WHEN '10%' THEN
IF resultNum = 1 THEN
SET resultStr='YES';
ELSE
SET resultStr='NO';
END IF;
WHEN '20%' THEN
IF (resultNum = 1) OR (resultNum = 2) THEN
SET resultStr='YES';
ELSE
SET resultStr='NO';
END IF;
WHEN '30%' THEN
IF (resultNum = 1) OR (resultNum = 2) OR (resultNum = 3) THEN
SET resultStr='YES';
ELSE
SET resultStr='NO';
END IF;
WHEN '40%' THEN
IF (resultNum = 1) OR (resultNum = 2) OR (resultNum = 3) OR (resultNum = 4) THEN
SET resultStr='YES';
ELSE
SET resultStr='NO';
END IF;
WHEN '50%' THEN
IF (resultNum = 1) OR (resultNum = 2) OR (resultNum = 3) OR (resultNum = 4) OR (resultNum = 5) THEN
SET resultStr='YES';
ELSE
SET resultStr='NO';
END IF;
WHEN '60%' THEN
IF (resultNum != 7) AND (resultNum != 8) AND (resultNum != 9) AND (resultNum != 10) THEN
SET resultStr='YES';
ELSE
SET resultStr='NO';
END IF;
WHEN '70%' THEN
IF (resultNum != 8) AND (resultNum != 9) AND (resultNum != 10) THEN
SET resultStr='YES';
ELSE
SET resultStr='NO';
END IF;
WHEN '80%' THEN
IF (resultNum != 9) AND (resultNum != 10) THEN
SET resultStr='YES';
ELSE
SET resultStr='NO';
END IF;
WHEN '90%' THEN
IF (resultNum != 10) THEN
SET resultStr='YES';
ELSE
SET resultStr='NO';
END IF;
WHEN '100%' THEN
SET resultStr='YES';
END CASE;
END
//
DELIMITER ;
测试:
CALL successRateProc('50%',@resultStr);
SELECT @resultStr;
二、实现判断概率区间1%-100%是否发生,传入参数successRate设置概率(传入50表示50%),
返回参数resultStr中yes表示在该概率中,no不在概率中
代码:
DELIMITER //
DROP PROCEDURE IF EXISTS successRateProc;
CREATE PROCEDURE successRateProc(IN successRate int,OUT resultStr VARCHAR(10))
BEGIN
DECLARE resultNum INT;
DECLARE fromNum INT DEFAULT 1;
DECLARE toNum INT DEFAULT 100;
SET resultNum = CONVERT((SELECT FLOOR(fromNum+Rand()*(toNum-fromNum+1))),UNSIGNED);
IF resultNum <= successRate THEN
SET resultStr='YES';
ELSE
SET resultStr='NO';
END IF;
END
//
DELIMITER ;
测试:
CALL successRateProc('80',@resultStr);
SELECT @resultStr;
0 0
- 判断概率区间1%-100%是否发生的存储过程
- 判断存储过程是否存在
- 判断数据是否存在,有返回值的存储过程
- sql 判断 函数 存储过程是否存在的方法
- sql 判断 函数 存储过程是否存在的方法
- Sql 判断库、表、存储过程是否存在的方法
- sql 判断 函数 存储过程是否存在的方法
- sql 判断 函数 存储过程是否存在的方法
- sql 判断 函数 存储过程是否存在的方法
- sql 判断 函数 存储过程是否存在的方法
- JQuery中事件是否发生的判断
- 通用存储过程之二: 根据主键的值,判断记录是否存在的存储过程
- 通用存储过程之二: 根据主键的值,判断记录是否存在的存储过程
- oracle判断存储过程是否执行完成
- 面试概率极大的Oracle存储过程
- 判断所指定的文件或目录(文件夹)是否存在存储过程
- sql 判断数据库,表,存储过程等是否存在的代码(教程)
- 判断所指定的文件或目录(文件夹)是否存在存储过程
- ubuntu安装jdk-8u45
- Unable to execute dex: Multiple dex files define 解决方法
- div文本域简单创建
- leetcode-CloneGraph
- quick2.2.6的cocostudio只能做静态展示
- 判断概率区间1%-100%是否发生的存储过程
- Linux 里面的文件操作权限说明
- ★IT姐妹技术论坛★ IT姐妹Ghost XP Sp3 纯真版v8.0
- EF中扩展出Between操作符
- Java中的访问权限修饰符
- Python-字符串小结
- 显示今日时间
- PhoneGap从入门到精通视频教程
- HDOJ-2200-Eddy's AC难题(组合数)