简体   繁体   English

Mysql函数从查询中返回一个值

[英]Mysql function returning a value from a query

i want to create a function which calculates a value using a query and I am having a problem returning the value: 我想创建一个使用查询计算值的函数,我在返回值时遇到问题:

Shortened, my query is: 缩短了,我的查询是:

CREATE FUNCTION func01(value1 INT , monto DECIMAL (10,2)) RETURNS DECIMAL(10,2)
BEGIN
SET @var_name = 0;
select @var_name=if(value1 = 1,monto * table.divisa_dolar,table.monto *divisa_euro) from table where data_init = 1;
return @var_nam;
END

I get a SQL syntax error. 我收到SQL语法错误。

SQL Error (1064): You have an error in your SQL syntax; SQL错误(1064):您的SQL语法中有错误;

Assuming these are all generic names (table will not be a good table name), the problem is you can't use == for comparison. 假设这些都是通用名称(表不是一个好的表名),问题是你不能使用==进行比较。 You are also missing some key syntax (DECLARE, SELECT INTO, etc.). 您还缺少一些关键语法(DECLARE,SELECT INTO等)。

Change to this: 改为:

CREATE FUNCTION func01(value1 INT , monto DECIMAL (10,2))
RETURNS DECIMAL(10,2)
DETERMINISTIC
BEGIN
  DECLARE var_name DECIMAL(10,2);
  SET var_name = 0;
  SELECT if(value1 = 1,monto *divisa_dolar,monto *divisa_euro) INTO var_name
    FROM table
    WHERE data_init = 1;
  RETURN var_name;
END

MySQL Comparison Functions and Operators MySQL比较函数和运算符

Related Question: Single Equals in MYSQL 相关问题: MYSQL中的单一等式

Function Help: http://www.databasejournal.com/features/mysql/article.php/3569846/MySQL-Stored-Functions.htm 功能帮助: http//www.databasejournal.com/features/mysql/article.php/3569846/MySQL-Stored-Functions.htm

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM