chaixw007
2017-03-06 02:11
采纳率: 57.1%
浏览 1.7k

mysql 自定义函数 怎么写

CASE frd.currency
WHEN '人民币/CNY' THEN
ROUND(frd.spotRate, 2)
WHEN '人民币/RMB' THEN
ROUND(frd.spotRate, 2)
WHEN '日元/JPY' THEN
ROUND(frd.spotRate, 4)
WHEN '美元/USD' THEN
ROUND(frd.spotRate, 2)
WHEN '港币/HKD' THEN
ROUND(frd.spotRate, 2)
WHEN '瑞士法郎/CHF' THEN
ROUND(frd.spotRate, 2)
WHEN '卢布/RUB' THEN
ROUND(frd.spotRate, 2)
WHEN '欧元/EUR' THEN
ROUND(frd.spotRate, 2)
ELSE
frd.spotRate
END AS spotRate
我想把这段sql 放进去 返回spotRate
应该怎么写 各位前辈帮帮忙。。。。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • YuanLicc 2017-03-06 07:23
    已采纳

    您的需求是建立存储过程的方法,请采纳:
    delimiter//
    CREATE PROCEDURE 函数名称 (IN 参数名称 varchar(255),OUT spotRate varchar(255))//IN代表输入的参数,后面是参数的类型,OUT代表输出
    CONTAINS SQL
    BEGIN
    //您的逻辑处理
    END;//
    delimiter;

    结束
    //如果您想要在逻辑处理内对spotRate进行赋值,可以使用set关键字,列:SET spotRate='RMB'
    建议您去看看书籍:《SQL必知必会》书籍的目的学习使用SQL,不包含数据库其他的知识,如果您当前只想链接SQL使用,建议去看看。

    已采纳该答案
    打赏 评论
  • YuanLicc 2017-03-06 07:33

    追加一下:
    delimiter//是改变当前的SQL结束符标志为‘//’,默认的结束符是‘;’,最后一行要改回‘;’。
    另外调用函数的方法,查询语句:call 函数名称(参数1,参数2);
    由于您的参数2是输出,所以的到输出结果还要紧接着书写SQL:select 参数2;所以调用书写为:
    call 函数名称(参数1,参数2);
    select 参数2;

    打赏 评论

相关推荐 更多相似问题