MySQL使用值创建函数语句并返回数据类型decimal

MySQL使用值创建函数语句并返回数据类型decimal,mysql,decimal,create-function,Mysql,Decimal,Create Function,这是我在MySQL中的代码。我应该写一个语句,通过给定的库存和每个项目的价格->库存*价格来计算itemavalue。 如果itemvalue为负值,则应将其设置为0 CREATE function item_value (inventory int UNSIGNED, price decimal(8,2)) RETURNS DECIMAL(8,2) BEGIN IF inventory*price < 0 THEN SET itemvalue = 0 ELSE SET

这是我在MySQL中的代码。我应该写一个语句,通过给定的库存和每个项目的价格->库存*价格来计算itemavalue。 如果itemvalue为负值,则应将其设置为0

CREATE function item_value (inventory int UNSIGNED, price decimal(8,2)) RETURNS DECIMAL(8,2)
BEGIN 
 IF inventory*price < 0 THEN 
  SET itemvalue = 0
 ELSE 
  SET itemvalue = inventory*price
END IF;
CREATE函数项_值(inventory int UNSIGNED,price decimal(8,2))返回十进制(8,2)
开始
如果存货*价格<0,则
设置itemvalue=0
其他的
SET itemvalue=存货*价格
如果结束;
我知道这到目前为止还不起作用,但我从未使用过MySQL中的函数。对不起,希望你们能帮我

函数的签名如下所示:

itemvalue(库存整数无符号,价格小数(8,2))


谢谢

我猜您想要:

DELIMITER $$

CREATE function item_value (
    inventory int UNSIGNED,
    price decimal(8,2)
) RETURNS DECIMAL(8,2)
BEGIN
    RETURN GREATEST(inventory*price, 0); 
END $$

DELIMITER ;

“不工作”是什么意思?为什么要使用分隔符和$$?@user2379123。文档解释了这一点:。嗯,我想最好告诉您我有一个名为item的表。它包含价格和库存等所有数据。我的函数应该从实际库存和商品价格中获取输入,并使用公式inventory*price将其转换为itemvalue。现在清楚了吗?@user2379123。这回答了您提出的问题:关于在MySQL中创建函数。如果您有一个涉及更新表的问题,那么这是另一个问题。你应该问另一个问题,并提供样本数据和期望的结果。