【发布时间】:2019-01-10 22:15:49
【问题描述】:
我写了两个函数。第一个使用选择查询并返回一个值。虽然我的第二个函数使用第一个函数的返回值作为输入,并且在某些操作之后应该返回它自己的值。虽然我收到“OK”消息但没有得到任何输出
DELIMITER //
DROP FUNCTION IF EXISTS walkerCubicAreaWeight;
CREATE FUNCTION walkerCubicAreaWeight (WType1 CHAR(5))
RETURNS DECIMAL(5,2)
BEGIN
DECLARE Cubic_Area_Weight FLOAT;
SELECT Weight INTO @A FROM imperial_walker_type WHERE WType = WType1;
SELECT Height INTO @B FROM imperial_walker_type WHERE WType = WType1;
SELECT Length INTO @C FROM imperial_walker_type WHERE WType = WType1;
SELECT Width INTO @D FROM imperial_walker_type WHERE WType = WType1;
SET Cubic_Area_Weight = @A/(@B*@C*@D) ;
RETURN Cubic_Area_Weight;
END //
DELIMITER ;
功能2
DELIMITER //
DROP FUNCTION IF EXISTS walkerFuelCapacity;
CREATE FUNCTION walkerFuelCapacity (WType1 varCHAR(20))
RETURNS DECIMAL(10,2)
BEGIN
DECLARE Walker_Fuel_Capacity FLOAT;
SELECT OpRange INTO @E FROM imperial_walker_type WHERE WType = WType1;
SET Walker_Fuel_Capacity = walkerCubicAreaWeight(WType1) *@E ;
RETURN Walker_Fuel_Capacity;
END //
DELIMITER ;
我的第一个函数返回值 0.40。在第二个函数中,它应该使用 0.40 并将其与 oprange 相乘(在本例中为 720)并应返回 288。但是我收到消息 OK 并且没有值
【问题讨论】:
-
您能否添加执行此操作的方式(例如,是什么给了您“OK”消息)?
-
我在 SELECT 查询中调用 walkerFuelCapacity 函数。比如下面这张。 - 从 Imperial_walker_type 中选择 count(*),walkerFuelCapacity('AT-AT')