以下查询:
select case when array_length(regexp_matches('sss', 's')::text[], 1) = 1 then 'x' else 'y' end;
引发错误:
ERROR: argument of CASE/WHEN must not return a set
LINE 1: select case when array_length(regexp_matches('sss', 's')::te...
^
********** Error **********
ERROR: argument of CASE/WHEN must not return a set
SQL state: 42804
Character: 18
我想知道发生了什么事?如何让这样的查询起作用?
此查询正常工作:
select case when array_length('{1,2}'::text[], 1) = 1 then 'x' else 'y' end;
答案 0 :(得分:0)
regexp_matches
返回一行。但是它的返回类型是SETOF text [],无论如何。