Mysql 函数应用

摘自 daisylh 博客

 

 1.用if...then...elseif...
DELIMITER $$

DROP FUNCTION IF EXISTS `demodb`.`sf1` $$
CREATE FUNCTION `sf1`(pid VARCHAR(10)) RETURNS varchar(100)
BEGIN
DECLARE strsql varchar(100);
 if pid="1" then  set strsql= 'select * from tablea';
 elseif pid="2" then set strsql= 'select * from tableb' ;
 else   set strsql= 'select * from tablec' ;
 end if   ;
 return strsql;
END $$

DELIMITER ;

2.用case...when...then...
DELIMITER $$

DROP FUNCTION IF EXISTS `demodb`.`sf2` $$
CREATE FUNCTION `sf2`(pid VARCHAR(10)) RETURNS varchar(100)
BEGIN
DECLARE strsql varchar(100);
 case pid
 when "1" then  set strsql= 'select * from tablea';
 when "2" then set strsql= 'select * from tableb' ;
 else   set strsql= 'select * from tablec' ;
 end case  ;
 return strsql;
END $$

DELIMITER ;

3.存儲過程中調用函數
DELIMITER $$

DROP PROCEDURE IF EXISTS `jmcndb`.`sp7` $$
CREATE PROCEDURE `sp7`(IN pid VARCHAR(10))
BEGIN

  select sf1(pid) into @sql;
  prepare stmt from  @sql;
  execute stmt ;
END $$

DELIMITER ;
p.s.sf1(pid)即為1的函數

4.函數的查詢
show function status;
show create function sf1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值