У меня есть один sql, которому нужно преобразовать строковый столбец в массив, и мне нужно отфильтровать по этому столбцу , sql, например, так:
select
parent_line,
string_to_array(parent_line, '-')
from
bx_crm.department
where
status = 0 and
'851' = ANY(string_to_array(parent_line, '-')) and
array_length(string_to_array(parent_line, '-'), 1) = 5;
parent_line
- это столбец varchar (50) In данные в этом виде, как 0-1-851-88
вопрос:
string_to_array(parent_line, '-')
появляются много раз в моем sql.
- сколько раз
string_to_array(parent_line)
вычисляется в каждой строке. один или три раза - как преобразовать
string_to_array(parent_line)
в параметр. наконец, мой sql может понравиться так:
depts = string_to_array(parent_line, '-')
select
parent_line,
depts
from
bx_crm.department
where
status = 0 and
'851' = ANY(depts) and
array_length(depts, 1) = 5;