【问题标题】: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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-14
        • 1970-01-01
        • 2021-12-11
        • 2016-09-02
        • 1970-01-01
        • 1970-01-01
        • 2013-03-28
        • 1970-01-01
        相关资源
        最近更新 更多