Functions
如果值為空,則取下一個更高的值
我有一個需要 3 個值的函式,然後使用這些值從表中返回一個值。
FUNCTION: odwh_data.annual_rental(connection_type,data_rate,date) CREATE OR REPLACE FUNCTION odwh_data.ead_charge_annual_rental( "connection_type$" character, "data_rate$" integer, "start_datetime$" timestamp without time zone) RETURNS numeric AS SELECT annual_rental FROM odwh_system.ead_credit_charge WHERE connection_type = connection_type$ AND data_rate = data_rate$ AND start_datetime$::date BETWEEN COALESCE(valid_from,start_datetime$::date) AND COALESCE(valid_to,start_datetime$::date);
下面是 odwh_system.ead_credit_charge 表的範例:
目前傳遞的 data_rate 不在列表中,不會返回 year_rental 值。我想更新它,因此如果 data_rate 的值為 30,它將採用下一個更高的值,例如 100,因此將返回 185.00 英鎊的年租金。
目前傳遞的 data_rate 不在列表中,不會返回 year_rental 值。我想更新它,因此如果 data_rate 的值為 30,它將採用下一個更高的值,例如 100,因此將返回 185.00 英鎊的年租金。
也許你需要
SELECT annual_rental FROM odwh_system.ead_credit_charge WHERE connection_type = connection_type$ AND data_rate >= data_rate$ AND start_datetime$::date BETWEEN COALESCE(valid_from,start_datetime$::date) AND COALESCE(valid_to,start_datetime$::date) ORDER BY data_rate LIMIT 1;
?