使用用户定义的函数合并两个字符串 [英] Merge two strings using user-defined function

查看:142
本文介绍了使用用户定义的函数合并两个字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我有两个字符串,现在我需要在使用MySQL提到的地方将一个字符串合并为另一个字符串.我写了代码,但是不能正常工作


I have two strings, now I need to merge one string into another in the place where I have mentioned using MySQL. I wrote the code but it is not working correctly

DELIMITER $$DROP FUNCTION IF EXISTS `test`.`dateformat1`$$
CREATE FUNCTION dateformat1 ( monthyear  nvarchar(80), day nvarchar(80), n Int)
	RETURNS  nvarchar(80)BEGIN
 Declare s1 varchar(80);
	Declare s2 varchar(80);
	declare i int;
	set i=1;
	set s1 = '';
	loop1: loop 
	              
			SET s1 = s1 + substring(monthyear,i,1);
                        IF i = n   then
			      LEAVE loop1;
			ELSE
				set i = i+1;
				ITERATE loop1;
                        END IF;
        END loop loop1;



        SET s1 = s1 + day + substring(monthyear,i,length(monthyear)-i+1 );
	RETURN s1;

END$$DELIMITER ;
select dateformat1 ('09/2009','01/',4);



我得到的答案不正确.我需要的输出是09/01/2009.我正在使用MySQL版本5.x



I am getting incorrect answers. The output I need is 09/01/2009. I am using MySQL version 5.x

推荐答案

如果存在`test`.`dateformat1`
DROP FUNCTION IF EXISTS `test`.`dateformat1`


CREATE FUNCTION dateformat1,则删除功能(monthyear nvarchar(80),day nvarchar(80),n Int) 返回nvarchar(80)BEGIN 声明s1 varchar(80); 声明s2 varchar(80); 宣布我为int; 设置i = 1; 设置s1 =''; loop1:循环 SET s1 = s1 +子字符串(monthyear,i,1); 如果i = n,那么 离开loop1; 别的 设置i = i + 1; ITERATE loop1; 万一; END循环loop1; SET s1 = s1 + day + substring(monthyear,i,length(monthyear)-i + 1); 返回s1; END
CREATE FUNCTION dateformat1 ( monthyear nvarchar(80), day nvarchar(80), n Int) RETURNS nvarchar(80)BEGIN Declare s1 varchar(80); Declare s2 varchar(80); declare i int; set i=1; set s1 = ''; loop1: loop SET s1 = s1 + substring(monthyear,i,1); IF i = n then LEAVE loop1; ELSE set i = i+1; ITERATE loop1; END IF; END loop loop1; SET s1 = s1 + day + substring(monthyear,i,length(monthyear)-i+1 ); RETURN s1; END


DELIMITER; 选择dateformat1('09/2009','01/',4);
DELIMITER ; select dateformat1 ('09/2009','01/',4);



我得到的答案不正确.我需要的输出是09/01/2009.我正在使用MySQL版本5.x



I am getting incorrect answers. The output I need is 09/01/2009. I am using MySQL version 5.x


这篇关于使用用户定义的函数合并两个字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆