MySQL 使用现有 table 创建函数语句
MySQL Create function statement with existing table
我以前问过这些问题,但我认为最好问一个新问题,因为我的旧问题似乎略有不同。我没有提到现有的 table 和那里的输入。
我有一个 table 'item',其中包含所有数据,例如每个项目的价格和库存。我的函数应从实际库存和商品价格中获取输入,并使用公式库存*价格将其转换为商品值。如果 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;
函数签名:
item_value (inventory int UNSIGNED, price decimal(8,2))
Table 项:
在我看来,您的功能不起作用,因为您没有 return 任何东西。我对吗?您应该添加 return 语句...
CREATE FUNCTION item_value (inventory INT UNSIGNED, price DECIMAL(8,2)) RETURNS DECIMAL(8,2)
BEGIN
DECLARE itemvalue DECIMAL(8,2) DEFAULT 0.0;
IF inventory*price < 0 THEN
SET itemvalue = 0
ELSE
SET itemvalue = inventory*price
END IF;
RETURN (itemvalue);
END
我以前问过这些问题,但我认为最好问一个新问题,因为我的旧问题似乎略有不同。我没有提到现有的 table 和那里的输入。
我有一个 table 'item',其中包含所有数据,例如每个项目的价格和库存。我的函数应从实际库存和商品价格中获取输入,并使用公式库存*价格将其转换为商品值。如果 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;
函数签名:
item_value (inventory int UNSIGNED, price decimal(8,2))
Table 项:
在我看来,您的功能不起作用,因为您没有 return 任何东西。我对吗?您应该添加 return 语句...
CREATE FUNCTION item_value (inventory INT UNSIGNED, price DECIMAL(8,2)) RETURNS DECIMAL(8,2)
BEGIN
DECLARE itemvalue DECIMAL(8,2) DEFAULT 0.0;
IF inventory*price < 0 THEN
SET itemvalue = 0
ELSE
SET itemvalue = inventory*price
END IF;
RETURN (itemvalue);
END