如何在SQL函数中将查询结果放入返回变量函数
问题描述:
如何在SQL函数中将查询结果放入返回变量中。我还包括一些错误消息,它显示了错误。我是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行上的错误。
答
最简单的语法变化,我可以推荐,让你去(为一个函数)包括:
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”是一个模式和“客人”是一个表...
+0
即使这是给错误。 它说在第1行的语法错误。 –
+0
@VarunGarg什么是错误说?如果它是“这个函数已经存在”错误,那么将“CREATE”一词改为“ALTER”。 – Sturgus
这个定义很难开始。为什么你在函数中使用'raiseerror',比如?也许你想要一个存储过程。 –
先生,我是新的存储在SQL.I函数我想要在输出中显示错误。请你给我一些关于这个没有使用存储过程的参考? –