Я хочу проанализировать поле со следующим типом значения:
"DAVE EBERT CONSTRUCTION~139 LENNOX STREET~SANTA CRUZ, 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]
Есть ли более прямой способ сделать это? Но опять же, если я извлекаю много разных элементов массива, может быть, менее прямой способ работает лучше, потому что вы конвертируете строку в массив только один раз?