如何合并空字符串和 NULL 值?

2023-12-26

我正在尝试制作最快的 COALESCE() ,它接受两个或多个参数,并返回第一个非空和非空(“”)值。

我正在使用这个:

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 语句快。

你怎么认为?


不要创建用户功能是你想要的速度。而不是这个:

coalescenonempty(col1,col2||'blah',col3,'none');

do this:

COALESCE(NULLIF(col1,''),NULLIF(col2||'blah',''),NULLIF(col3,''),'none');

也就是说,对于每个非常量参数,将实际参数用NULLIF( x ,'').

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何合并空字符串和 NULL 值? 的相关文章

随机推荐