Я хочу проанализировать поле со следующим типом значения:
"ДЭЙВ ЭБЕРТ КОНСТРУКШН ~ 139 УЛИЦА ЛЕННОКС ~ САНТА-КРУЗ, CA 95060 ~~ Номер бизнес-телефона (831) 818-3170"
Я хотел бы сделать запрос вроде:
Update mytable set street = string_to_array(myfield,'~')[2]
Но string_to_array не "возвращает" массив, поэтому он не может быть связан таким образом.Тем не менее, он возвращает массив, который может использоваться другими функциями, которые принимают массивы, такие как array_upper (), поэтому я не знаю, почему он не будет работать.
Мой обходной путь - создать поле массива и сделать это:
Update mytable set myfield_array = string_to_array(myfield,'~')
Update mytable set street = myfield_array[2]
Есть ли более прямой способ сделать это?Но опять же, если я извлекаю много разных элементов массива, может быть, менее прямой путь работает лучше, потому что вы конвертируете строку в массив только один раз?