如何从PostgreSQL 8.4中的string_to_array()返回一个元素?

Bra*_*ews 4 arrays postgresql

我想用以下类型的值解析一个字段:

"DAVE EBERT CONSTRUCTION~139 LENNOX STREET~SANTA CRUZ,CA 95060 ~~商业电话:(831)818-3170"

我想做一个像这样的查询:

Update mytable set street = string_to_array(myfield,'~')[2]
Run Code Online (Sandbox Code Playgroud)

但string_to_array不会"返回"一个数组,因此无法以这种方式链接.但是,它确实返回一个数组,可以被其他函数使用,这些函数接受像array_upper()这样的数组,因此我不知道为什么它不起作用.

我的解决方法是创建一个数组字段并执行以下操作:

Update mytable set myfield_array = string_to_array(myfield,'~')
Update mytable set street = myfield_array[2]
Run Code Online (Sandbox Code Playgroud)

有没有更直接的方法来做到这一点?但同样,如果我提取了许多不同的数组元素,也许不那么直接的方式表现得更好,因为你只将字符串转换为数组一次?

rfu*_*sca 14

尝试...

Update mytable set street = (string_to_array(myfield,'~'))[2]
Run Code Online (Sandbox Code Playgroud)

你只需要那些括号.