2016-12-02 76 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