-1
我正在嘗試編寫一個純SQL函數,它需要兩個參數,這兩個參數對應勝利的數量並繪製一個團隊已經獲得的數量。這是我想寫的函數的實際定義。編寫一個純sql函數
寫純SQL(即,不是一個PL/pgSQL函數)計算值分的總功能命名的需要 兩個參數對應於獲勝的數目和繪製由一隊贏得。該函數 應返回基於上面公式1中的公式獲得的總分數。
,我使用這個函數的計算公式是
3 · wins + draws
我沒有以前那麼用SQL寫的任何功能,這樣我看它的在線,但我發現,寫我的代碼上看起來不正確。這是我迄今爲止編寫的代碼,但我認爲它不起作用。
CREATE OR REPLACE FUNCTION calc_points_total(integer, integer)
RETURN integer AS $$
SELECT $1 :: ((3 * $1) + $2) AS result;
$$ LANGUAGE SQL
,我使用這個表是
Table "lab10.group_standings"
Column | Type | Modifiers
--------+-----------------------+-----------
team | character varying(25) | not null
wins | smallint | not null
losses | smallint | not null
draws | smallint | not null
points | smallint | not null
Indexes:
"group_standings_pkey" PRIMARY KEY, btree (team)
Check constraints:
"group_standings_draws_check" CHECK (draws >= 0)
"group_standings_losses_check" CHECK (losses >= 0)
"group_standings_points_check" CHECK (points >= 0)
"group_standings_wins_check" CHECK (wins >= 0)
您需要命名函數定義中的參數。 – Barmar
@Barmar你是什麼意思?我更新了我的代碼是否有效? – ryan
@Barmar:不,你沒有,編號的參數很好,你在答案中鏈接到的文檔甚至要注意參數名是可選的。最大的問題是'::'用於在PostgreSQL中進行投射。 –