我有一个名为"Address"的复合字段。它有字段:-街道名称-街道编号-区域
如果我进行正常选择:
select address from mytable where id = 1
我得到:
address => ("my street",1,earth)
我想要一种方法来选择这个并获得:
street_name => my street
street_number => 1
area => earth
我过去做过这样的事情:
select address.* from mytable where id = 1
但这行不通。有什么想法可以得到我想要的结果吗?
根据手册。如果你试图引用复合类型的子字段,你需要把名称放在括号里,否则解析器会认为你试图从"地址"表中获得一些东西
SELECT (address).* from mytable where id = 1
如果您只想选择元素,请执行以下操作:
select address.street_name,
address.street_number,
address.area
from mytable where id = 1
如果你想得到与你的问题完全一样的结果:
select 'street_name =>' || address.street_name
from mytable where id = 1 union
select 'street_number =>' || address.street_number
from mytable where id = 1 union
select 'area=>' || address.area
from mytable where id = 1