2016-12-02 8 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": "पेट्रोल "," एफआर-एफआर ":" सार "}। मैं परिणाम की स्ट्रिंग को वापस करने के लिए डबल कोट्स कैसे छोड़ सकता हूं?

उत्तर

28

-> ऑपरेटर json परिणाम देता है। इसे text पर कास्ट करना इसे एक जेसन reprsentation में छोड़ देता है।

->> ऑपरेटर text परिणाम देता है। इसके बजाय इसका प्रयोग करें।

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

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

उत्कृष्ट उत्तर! –

+0

आपने दिन बचाया। – 0zero0zero

संबंधित मुद्दे