在 SQL 自定义函数中运行 select 语句
Posted
技术标签:
【中文标题】在 SQL 自定义函数中运行 select 语句【英文标题】:Running a select statement within an SQL custom function 【发布时间】:2022-01-19 02:04:24 【问题描述】:尝试在 SQL 中运行嵌套了 Select 语句的函数,但无法正常工作。对此很陌生,所以我可以使用帮助。这是我的代码:
DELIMITER//
CREATE FUNCION whereAndWhen(species, VARCHAR(255))
RETURNS INT()
BEGIN
SELECT animals.zone
FROM animals
WHERE animals.species = species;
RETURN;
END; //
DELIMITER ;
该函数的目标是接受一个动物物种名称并接收该动物居住的区域,所有这些都来自同一个表。有什么建议吗?
【问题讨论】:
【参考方案1】:在返回之前尝试使用 DECLARE 和 SET 来保存 SELECT 查询:
DELIMITER//
CREATE FUNCION whereAndWhen(species, VARCHAR(255))
RETURNS INT()
BEGIN
DECLARE zoneNum INT;
SET zoneNum = (SELECT animals.zone
FROM animals
WHERE animals.species = species);
RETURN zoneNum;
END; //
DELIMITER ;
【讨论】:
【参考方案2】:您可以使用 SELECT INTO
CREATE tABLE animals (zone int, species varchar(255))
INSERT INTO animals VALUES (1,'Owl')
CREATE FUNCTION whereAndWhen(_species VARCHAR(255)) RETURNS INT BEGIN SELECT animals.zone INTO @zone FROM animals WHERE animals.species = _species; RETURN @zone; END;
| whereAndWhen('猫头鹰') | | ------------------: | | 1 |SELECT whereAndWhen('Owl')
db小提琴here
【讨论】:
以上是关于在 SQL 自定义函数中运行 select 语句的主要内容,如果未能解决你的问题,请参考以下文章
sql server 怎样用select语句调用自定义表值函数