簡體   English   中英

Mysql函數從查詢中返回一個值

[英]Mysql function returning a value from a query

我想創建一個使用查詢計算值的函數,我在返回值時遇到問題:

縮短了,我的查詢是:

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

我收到SQL語法錯誤。

SQL錯誤(1064):您的SQL語法中有錯誤;

假設這些都是通用名稱(表不是一個好的表名),問題是你不能使用==進行比較。 您還缺少一些關鍵語法(DECLARE,SELECT INTO等)。

改為:

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比較函數和運算符

相關問題: MYSQL中的單一等式

功能幫助: 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