

select
/*使用row选取特定字段转构造行*/
row_to_json(row(hp.code, hp.fclass, hp.name)) as json_row
from
henan_poi as hp
limit
10

select
/*三个字段作为整体,转换为json,作为一个字段json_row*/
row_to_json(fields) as json_row
from
(
select
hp.code, hp.fclass, hp.name
from
henan_poi as hp
limit
10
) as fields

但是这也有个问题,我们只是将选定的三个字段转换为一个json字符串json_raw作为整体字段,如果想加别的字段,那么可以换一种写法,把他往上提一个等级,这个整体作为一个子查询,代码如下:
select
/*整个作为一个子查询命名为json_other_way,这也就可以加其他的字段,此时from表也要提到外边*/
(
select
row_to_json(fields) as json
from
(
select
hp.code, hp.fclass, hp.name
) as fields
) as "json_other_way"
from
henan_poi as hp
结果和上个查询一样,不在截图,这里直接给出针对第一篇的修改后,用子查询代替row的完整代码:

文章转载自PostGIS专栏,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




