2016-12-02 91 views
12

刪除雙引號我在PostgreSQL的從函數的返回PostgreSQL中

CREATE OR REPLACE FUNCTION public.translatejson(JSONB, TEXT) 
RETURNS TEXT 
AS 
$BODY$ 
    SELECT ($1->$2)::TEXT 
$BODY$ 
LANGUAGE sql STABLE; 

當我執行了以下功能我收到了雙引號的值。例如:

SELECT id, translatejson("title", 'en-US') AS "tname" FROM types."FuelTypes";

回報我得到這樣

------------------- 
| id | tname  | 
------------------- 
| 1 | "gasoline" | 
| 2 | "diesel" | 
------------------- 

在 '標題' 列中的值是一個JSON格式的表格: { 「EN-US」:「汽油「,」fr-FR「:」本質「}。 如何省略雙引號來返回結果的字符串?

回答

28

->運算符返回json結果。將它投射到text將其留在json代表中。

->>運算符返回text結果。改爲使用它。

test=> SELECT '{"car": "going"}'::jsonb -> 'car'; 
?column? 
---------- 
"going" 
(1 row) 

test=> SELECT '{"car": "going"}'::jsonb ->> 'car'; 
?column? 
---------- 
going 
(1 row) 
+1

優秀的答案! –

+0

你保存了一天。 – 0zero0zero