如何将查询结果放入SQL函数中的返回变量中。我还包含了一些错误消息,并且显示错误。我是SQL函数的新手,如果有人可以,那就太好了对此进行解释
DELIMITER //
CREATE FUNCTION fHW2_4_nuneedua( a varchar(50))
RETURNS varchar(50)
BEGIN
DECLARE result varchar(50) DEFAULT null;
select if ( a = NULL,
RAISERROR('please input a valid city name', 16, 1),
if( (select * from dreamhome.guest where city = a ) = 'NULL',
RAISERROR('Empty set', 16, 1),
(select GROUP_CONCAT(name) as output from dreamhome.guest where address like "% ' . $a . '%" )
)
) INTO result
RETURN result;
END //
DELIMITE
我在这个功能的第12行遇到错误。
答案 0 :(得分:0)
我可以推荐的最简单的语法更改(作为一个函数)包括:
CREATE FUNCTION fHW2_4_nuneedua(@a Varchar(50))
RETURNS Varchar(50)
AS
BEGIN
IF @a IS NULL RETURN NULL
IF NOT EXISTS (SELECT * FROM dreamhome.guest WHERE city = @a) RETURN NULL
RETURN (SELECT GROUP_CONCAT(name) as output
FROM dreamhome.guest WHERE address LIKE "% ' . $" + @a + " . '%")
END
这假设“dreamhome”是一个架构而“guest”是一个表......