【问题标题】:How do I return a value from another column by matching an input from a function?如何通过匹配函数的输入从另一列返回值?
【发布时间】:2022-11-19 17:18:14
【问题描述】:
Table
CREATE DEFINER=`root`@`localhost` FUNCTION `GetGPA`(sName VARCHAR(45)) RETURNS float
DETERMINISTIC
BEGIN
DECLARE grade FLOAT;
DECLARE sName VARCHAR(45);
SELECT GPA INTO grade
FROM student
WHERE studentName = sName;
RETURN grade;
END
我做了这个函数,它返回了 null:
Stored Function
我尝试使用输入学生姓名的函数返回学生的 GPA。
【问题讨论】:
标签:
mysql
sql
mysql-workbench
【解决方案1】:
当您使用Into 关键字时,这意味着您创建了临时表。
到目前为止,您应该使用一个变量,其类型等于 GPA 列和 set 中的值,最后返回它:
CREATE DEFINER=`root`@`localhost` FUNCTION `GetGPA`(sName VARCHAR(45)) RETURNS float
DETERMINISTIC
BEGIN
DECLARE @grade FLOAT;
DECLARE sName VARCHAR(45);
SELECT @grade=GPA
FROM student
WHERE studentName = sName;
RETURN @grade;
END
【解决方案2】:
利用:
CREATE FUNCTION GetGPA (sname varchar(45))
RETURNS float DETERMINISTIC
BEGIN
DECLARE grade FLOAT;
SELECT GPA INTO grade
FROM student
WHERE StudentName = sName;
RETURN grade;
END
https://dbfiddle.uk/AF9iO_l8
Reference