我正在尝试创建最快的COALESCE()函数,该函数接受两个或多个参数,并返回第一个非null且非空("")值。
我正在使用以下代码:
CREATE OR REPLACE FUNCTION coalescenonempty(VARIADIC in_ordered_actual varchar[])
RETURNS varchar AS $$
SELECT i
FROM (SELECT unnest($1) AS i) t
WHERE i IS NOT NULL AND i <> ''
LIMIT 1;
$$ LANGUAGE sql;
虽然速度还不及COALESCE或CASE WHEN语句,但它已经非常快了。
你认为呢?