DELIMITER $$
DROP TABLE IF EXISTS TEST
BEGIN
DECLARE fisrtCatergoryName VARCHAR(80) DEFAULT '';
DECLARE secondCatergoryName VARCHAR(80) DEFAULT '';
DECLARE thirdCatergoryName VARCHAR(80) DEFAULT '';
select CATEGORYNAME from B2B_MATERIAL_CATEGORIES where CATEGORYNO=substring(input,1,7) into thirdCatergoryName;
select CATEGORYNAME from B2B_MATERIAL_CATEGORIES where CATEGORYNO=substring(input,1,5) into secondCatergoryName;
select CATEGORYNAME from B2B_MATERIAL_CATEGORIES where CATEGORYNO=substring(input,1,3) into fisrtCatergoryName;
RETURN CONCAT(fisrtCatergoryName,'--',secondCatergoryName,'--',thirdCatergoryName);
END $$
DELIMITER ;
DELIMITER $$
DROP TABLE IF EXISTS TEST
RETURNS VARCHAR(80)
BEGIN
DECLARE _value VARCHAR(80) DEFAULT '';
select AREANAME from ds_area_info where AREANO=input into _value;
RETURN _value;
END $$
DELIMITER ;
DELIMITER $$
CREATE FUNCTION getAreaName (input VARCHAR(32))
RETURNS VARCHAR(80)
BEGIN
DECLARE _value VARCHAR(80) DEFAULT '';
select AREANAME from ds_area_info where AREANO=input into _value;
RETURN _value;
END $$
DELIMITER ;
BELIMITER $$是定义一个结束标识符,因为MySQL默认是以分号作为SQL语句的结束符的,而函数体内部要用到分号,所以会跟默认的SQL结束符发生冲突,所以需要先定义一个其他的符号作为SQL的结束符;
DROP TABLE IF EXISTS TEST是如果这个函数已经存在了,就删除掉,TEST是数据库的名字,
CREATE FUNCTION是创建一个函数,()里是参数的名字和类型,RETURNS 定义这个函数返回值的类型;
函数体必须放在BEGIN END之间;
DECLARE 是定义函数体的变量,;
RETURN 是返回值,类型必须与DECLARE中定义的返回类型一致。