1

我想显示在早班工作的司机的详细信息..

delimiter //
create function dShift(n int)
returns varchar(128)
deterministic
begin
return (select driver.driver_no,driver_name,licence_no,address,d_age,salary 
from driver,bus_driver as bd where bd.shift=n and bd.driver_no = 
driver.driver_no); 
end //
4

1 回答 1

0

在您的函数中,返回类型是 varchar returns varchar(128)。所以它需要一个字符串作为输出。但是您将返回 6 列作为输出。

您可以使用以下方式获取列列表作为输出:

delimiter //

CREATE FUNCTION dShift (n INT)
BEGIN
    SELECT driver.driver_no
        ,driver_name
        ,licence_no
        ,address
        ,d_age
        ,salary
    FROM driver
    JOIN bus_driver AS bd ON bd.driver_no = driver.driver_no
    WHERE bd.shift = n;
END //
于 2019-01-09T08:11:07.410 回答