I tried the approach suggested here: Best way to select random rows PostgreSQL:
CREATE OR REPLACE FUNCTION any_test_user() RETURNS JSONB AS $$
WITH j_ret AS (
SELECT * FROM "User"
WHERE "nickname" LIKE 'test%' AND random() < 0.2 LIMIT 1
)
SELECT to_jsonb(j_ret) FROM j_ret;
$$ LANGUAGE 'sql';
However, when the table is small, it occasionally returns null. What's the best way to return just 1 random single row?