【发布时间】:2017-03-19 20:25:09
【问题描述】:
错误:SQL 表达式末尾缺少“LOOP” 上下文:PL/pgSQL 函数“player_height_rank”在第 9 行附近的编译
这是我的代码:
CREATE OR REPLACE FUNCTION player_height_rank (irstname VARCHAR, lastname VARCHAR) RETURNS int AS $$
DECLARE
rank INTEGER := 0;
offset INTEGER := 0;
tempValue INTEGER := NULL;
r record;
BEGIN
FOR r IN SELECT ((p.h_feet * 30.48) + (p.h_inches * 2.54)) AS height, p.firstname, p.lastname
FROM players p
WHERE p.firstname = $1 AND p.lastname = $2;
ORDER BY ((p.h_feet * 30.48) + (p.h_inches * 2.54)) DESC, p.firstname, p.lastname
LOOP
IF r.height = tempValue then
offset := offset + 1;
ELSE
rank := rank + offset + 1;
offset := 0;
tempValue := r.height;
END IF;
IF r.lastname = $4 AND r.lastname = $3 THEN
RETURN rank;
END IF;
END LOOP;
-- not in DB
RETURN -1;
END;
$$ LANGUAGE plpgsql;
【问题讨论】:
-
请发布问题,而不是错误和一些代码。你尝试了什么?你在哪里卡住了?
标签: postgresql plpgsql