Mysql函数示例(如何定义输入变量与返回值)
Mysql 函数示例
简介
基于mysql实现函数的编写,如何定义输入变量,如何定义和使用返回值等。
获取男女信息
--1 获取男女信息
CREATE FUNCTION getGender(idcard varchar(50)) RETURNS varchar(50) CHARSET utf8
BEGIN
DECLARE out_gender VARCHAR(4);
DECLARE V_SEX VARCHAR(4);
IF LENGTH(idcard)=18THENSET V_SEX= SUBSTRING(idcard,17,1) ;IF V_SEX%2=0 THEN SET out_gender='0' ;else SET out_gender='1';end if; ELSEIFLENGTH(idcard)=15THENSET V_SEX= SUBSTRING(idcard,15,1) ;IF V_SEX%2=0 THEN SET out_gender='0';else SET out_gender='1';end if;ELSESET out_gender='3';
END IF;
RETURN out_gender;
END
获取多大信息
-- 通过获取有多大了的信息,注该函数需要跟getId一起使用。
CREATE FUNCTION getAge(idcard varchar(50)) RETURNS varchar(50) CHARSET utf8
BEGINDECLARE out_age VARCHAR(20);DECLARE V_idcard VARCHAR(20);DECLARE C_PK VARCHAR(20);IF LENGTH(idcard)=15 THENSET V_idcard=getId(idcard); ELSE SET V_idcard=idcard ;END IF;IF LENGTH(V_idcard)=18 THEN SET out_age=DATE_FORMAT(curdate(),'%Y')-substr(V_idcard,7,4) ;ELSESET out_age=0;END IF ;IF out_age >=100 OR out_age<0 THEN SET out_age=0;END IF;RETURN out_age;END
兼容遗留问题
--兼容历史遗留问题
CREATE FUNCTION getId(idcard varchar(50)) RETURNS varchar(50) CHARSET utf8
BEGINDECLARE new_idcard varchar(20) DEFAULT '' ;
DECLARE id_len varchar(20) DEFAULT '' ;
SET id_len=LENGTH(TRIM(idcard));
IF id_len =15 THENSET new_idcard=CONCAT (SUBSTRING(idcard,1,6), -- 取第1到6位,即前6位(CASE WHEN SUBSTRING(idcard,7,2)>SUBSTRING(YEAR(CURDATE()),3,2) -- 补年份,这里假设不会有百岁的情况THEN '19'ELSE '20'END),SUBSTRING(idcard,7,9) -- 从第7位往后取9位,或者写成SUBSTRING(idcard,7),( -- 计算校验位,即对公开算法的SQL实现CASE ((SUBSTRING(idcard,1,1)*7+SUBSTRING(idcard,2,1)*9+SUBSTRING(idcard,3,1)*10+SUBSTRING(idcard,4,1)*5+SUBSTRING(idcard,5,1)*8+SUBSTRING(idcard,6,1)*4+(CASE WHEN SUBSTRING(idcard,7,2)>SUBSTRING(YEAR(CURDATE()),3,2)THEN 1*2+9*1ELSE 2*2+0*1END)+SUBSTRING(idcard,7,1)*6+SUBSTRING(idcard,8,1)*3+SUBSTRING(idcard,9,1)*7+SUBSTRING(idcard,10,1)*9+SUBSTRING(idcard,11,1)*10+SUBSTRING(idcard,12,1)*5+SUBSTRING(idcard,13,1)*8+SUBSTRING(idcard,14,1)*4+SUBSTRING(idcard,15,1)*2 )%11)WHEN 0 THEN '1'WHEN 1 THEN '0'WHEN 2 THEN 'X'WHEN 3 THEN '9'WHEN 4 THEN '8'WHEN 5 THEN '7'WHEN 6 THEN '6'WHEN 7 THEN '5'WHEN 8 THEN '4'WHEN 9 THEN '3'WHEN 10 THEN '2' ELSE 'FALSE' END ));elseset new_idcard=idcard;
end if;RETURN new_idcard;
END
Mysql函数示例(如何定义输入变量与返回值)相关推荐
- mysql函数示例_mysql函数备忘单和示例
mysql函数示例 There are a ton of functions provided by MySQL and most of them are used extensively. I wi ...
- python函数+定义+调用+多返回值+匿名函数+lambda+高级函数(reduce、map、filter)
python函数+定义+调用+多返回值+匿名函数+lambda+高级函数(reduce.map.filter) Python 中函数的应用非常广泛,比如 input() .print().range( ...
- php 函数返回值mixed,认识函数的类型、参数与返回值
函数的类型.参数与返回值 一.函数的基本语法语法 functionfunctionName(类型限定参数列表):返回值类型 { } 案例:计算两个数之和. functionsum(int$a,int$ ...
- 【Python】函数的可变可选参数传递及返回值
函数的参数传递 参数个数 函数可以有参数,也可以没有参数,但必须保留括号 def <函数名>():<函数体>return<返回值> 可选参数传递 函数定义时可以为某 ...
- (14年)2.写一个函数int func(int n)其返回值是n的逆序整数,例如n=123函数返回321.n=72839,函数返回93827
#include <stdio.h> #include <stdlib.h> /*写一个函数int func(int n)其返回值是n的逆序整数 例如n=123.函数返回321 ...
- 如何定义一个具有返回值的函数
定义具有返回值的函数是当执行到时函数会结束并返回当前值 代码如下: <!DOCTYPE html> <html> <body><h2>JavaScrip ...
- c语言宏函数返回值,C++宏定义方法的返回值
这个人呐,面个试都会紧张,一紧张就忘东西...哎 其实究其原因在于自己对知识了解没有深入到一定程度(自己:怪我咯). 起因 今天被问到使用C++语言中的宏来求一年的秒数. 分析问题,其实秒数很容易计算 ...
- mysql影响行数解析_对PHP函数mysqli_affected_rows的作用行数返回值的分析
这篇文章主要介绍了PHP中mysqli_affected_rows作用行数返回值,实例分析了普通模式与oop模式的用法,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例分析了PHP中mysqli ...
- scanf函数和回车、空格 及其返回值
scanf和回车的关系: 先看一个我们经常使用的代码: char c; scanf("%c", &c); scanf 的各种格式中,%d.%c.%s三种最常用,通常都是以回 ...
最新文章
- 几种开源工作流引擎的简单比较(转)
- 如何写出优质干净的代码,这6个技巧你不能错过!
- 【PHPExcel】生成Excel文件
- Java微服务(二)【idea中文插件安装】(手把手编写,超级详细)
- java调用指定浏览器_Java调用浏览器打开网页完整实例
- Vim直接打开Tampermonkey网址的方法。
- leetcode mysql 排名_GitHub - nimphy/leetcode-Mysql
- 杂项-Server:Serv-U
- python qt gui快速编程 pdf_翻译:《用python和Qt进行GUI编程》——介绍
- 电脑可以同时装python2和3吗_在同一台电脑上同时安装Python2和Python3-Go语言中文社区...
- sqlserver management studio 2014 升级2016_画质提升音质更佳:Insta360影石ONE R迎来最强升级...
- 【POJ2406】Power Strings(hash/kmp)
- MAC与PHY的接口GMII RGMII SGMII Serdes
- 宋体小四在手机上是几号_word文档4号宋体 word宋体小四是几号字
- html 鼠标形状箭头,CSS各种鼠标样式介绍
- Error in Summary.factor ‘min’ not meaningful for factors
- SEC再收中国互金企业招股书 融360成立简普科技拟融资2亿美元
- android 关机界面修改,修改Android关机界面
- 刁生富:《重估:人工智能与人的生存》
- input 正则控制输入
热门文章
- opengl加载显示3D模型blend类型文件
- wxWidgets:wxPGMultiButton类用法
- boost::spirit模块实现罗马数字解析器(演示符号表)的测试程序
- boost::safe_numerics::safe_signed_range相关的测试程序
- boost::multiprecision模块实现安全素数的测试程序
- boost::math模块计算 Bessel、Neumann 和 Airy 函数的零点的测试程序
- boost::hana::comparing用法的测试程序
- boost::hana::drop_back用法的测试程序
- boost::hana::always用法的测试程序
- boost::container实现多态的flat_set