· 7 years ago · Sep 15, 2018, 06:30 PM
1CREATE TEMPORARY TABLE IF NOT EXISTS accounts (id text, balance text);
2INSERT INTO accounts(id, balance) VALUES ('123', '500.00');
3
4CREATE OR REPLACE FUNCTION pg_temp.get_balance(id text)
5RETURNS json AS
6$$
7SELECT json_build_object('success', true, 'balance', balance)
8FROM
9 (
10 SELECT balance FROM accounts WHERE id = id
11 ) _;
12$$
13LANGUAGE 'sql' VOLATILE;
14
15SELECT pg_temp.get_balance('123');
16
17CREATE OR REPLACE FUNCTION pg_temp.get_balance(_id text)
18RETURNS json AS
19$$
20SELECT json_build_object('success', _.balance IS NULL, 'balance', balance)
21FROM (SELECT 1) s
22LEFT JOIN LATERAL (SELECT balance FROM accounts WHERE id = _id) _ ON TRUE;
23$$
24LANGUAGE 'sql' VOLATILE;