当前位置: 首页 > 面试题库 >

MySQL函数从查询返回值

阎涵容
2023-03-14
问题内容

我想创建一个使用查询来计算值的函数,但返回值时遇到问题:

简而言之,我的查询是:

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



 类似资料:
  • 问题内容: 我有以下从数据库获取十六进制代码的函数 我的问题是我在回调函数中返回了结果,但getColour函数未返回任何内容。我希望getColour函数返回的值。 在我调用getColour的那一刻,它不返回任何内容 我尝试做类似的事情 但当然SELECT查询在返回值时已经完成 问题答案: 您只需要对回调中的db查询结果进行处理。就像。

  • 问题内容: 我正在尝试从数据库中获取价值。用一个演示示例进行尝试。但是我在使用回调函数尝试同步调用时遇到问题。我是node.js的初学者,所以不知道这是否正确。 文件1:app.js 文件2:db.js 输出: 问题答案: 问题是这样的: 在将运行回调函数被调用之前,因为是异步的,这意味着它可能需要一些时间来完成,但所有的,而代码的下一行,将被执行。 如果要访问结果,则需要等待回调函数被调用: 这

  • 我正在为Discord制作一个机器人,这个机器人的一个功能是一个级别系统。我决定从使用JSON存储数据转向使用sqlite。我正在node.js中使用sqlite3,并试图创建一个函数来创建/检索播放器的数据。我的目标是让这个函数返回查询中的数据,但我正在努力找出我做错了什么。我已经读到,我需要使用发送到查询函数的回调,但这对我来说也不起作用(对于这个函数的目标也不起作用)。 因此,任何关于如何创

  • 问题内容: 我想从MySQL查询返回第二条,第三条或第四条记录(基于ID递增的查询) 问题是,我不知道ID,只是它是查询中的第三行。 问题答案: 它说从记录n开始返回一个记录。

  • 问题内容: 我正在创建一条SQL语句,该语句将按月返回销售摘要。 该摘要将列出一些简单的列,用于显示日期,总销售数量和总销售价值。 但是,除了这些列之外,我还要再添加3个,以按花费金额列出最佳客户月份。对于这些列,我需要某种内联子查询,这些子查询可以返回其ID,名称和所花费的金额。 我目前的工作是使用内联语句,但是,根据我对如何实现这些语句的了解,每个内联语句只能返回一个列和一行。 为了解决我的情

  • 问题内容: 我正在执行此查询: 我正在尝试使其返回如下内容: 但是,我得到了错误: #1242-子查询返回的行数超过1。 我尝试将语句放置在子查询中,但是收到无效的语法错误。 问题答案: 您可以使用简单的分组方式在没有子查询的情况下进行尝试: 使用GROUP BY时,未分组的任何列都必须具有聚合子句(fe SUM或COUNT。)因此,在这种情况下,您必须对县名称,precienct.id和prec