2016-07-29 56 views
0

我在PostgreSQL中有一個表,其中有像ID,名稱,城市,暴徒 等我在PostgreSQL中有json數據類型,我們可以 以json格式存儲數據,但我不想使用json數據類型。有沒有什麼辦法從PostgreSQL表格中獲取JSON格式的數據,該表格具有不同的字段而不是json數據類型字段?

我想獲取這些表的字段(ID,姓名,城市,暴徒),這是正常的域不JSON數據類型字段,我想以JSON格式

我想要的假設mytable的是具有ID的表,名稱,城市,暴徒,出生日期爲現場和
現在我想執行的查詢,如:

select name,city from mytable where id=5; 

此查詢應該返回輸出像{"name":"xyz","city":"abc"}

,所以我怎麼能做到這一點,應該是什麼查詢那個?

+0

'row_to_json ()'? https://www.postgresql.org/docs/current/static/functions-json.html –

+0

但如果我想要從一行中的一些列呢? –

+0

對不起,我不知道你的意思。 'row_to_json()'將使用行中的列。如果你想得到一個好的答案,那麼[編輯]你的問題,並根據這些數據添加一些樣本數據和預期的輸出。 _Formatted_文本,請[無屏幕截圖](http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-問題/ 285557#285557) –

回答

0

使用row_to_json()

select row_to_json(t) 
from (
    select name,city from mytable 
    where id=5 
) t 

派生的表是必要建立與列專有名稱的記錄類型。 row_to_json((name,city))不會達到此目的。

編輯

如果從表中要所有列(而不是兩個如問題所示),那麼你就不需要派生表:

select row_to_json(mytable) 
from mytable 
where id = 5; 
+0

如果我想要select * from mytable? –

+0

然後使用'mytable'選擇row_to_json(mytable)。 –

+0

這個*查詢工作,但選擇row_to_json(T) 從( 選擇名稱,從MYTABLE 城市其中id = 5 )T沒有工作 –

相關問題