0
我們將有高度的排名,但我對所有球員 得到0我轉換英尺和英寸爲釐米第一,並使用示例代碼老師給我們。 這裏是我的代碼:得到玩家的高度的排名在PLPGSQL
CREATE OR REPLACE FUNCTION player_height_rank (firstname VARCHAR, lastname VARCHAR) RETURNS int AS $$
DECLARE
rank INTEGER:= 0;
offset INTEGER:= 0;
tempValue FLOAT:= 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
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.firstname = $1 AND r.lastname = $2 THEN
RETURN rank;
END IF;
END LOOP;
-- not in DB
RETURN 0;
END;
$$ LANGUAGE plpgsql;
--select * from player_height_rank('Ming', 'Yao');
非常感謝。但我們假設寫一個函數而不是查詢。我想仔細檢查我的逗號和改變它,也重命名變量名,但仍然不能得到正確的輸出。我總是得到0或1 – lilywang
那麼對你的最好的事情是編輯的問題,並添加樣本數據和演示它是如何去錯了,因爲它爲我工作。 –