programing

Postgre 함수의 반환에서 큰따옴표를 제거합니다.SQL

newsource 2023. 3. 26. 11:26

Postgre 함수의 반환에서 큰따옴표를 제거합니다.SQL

Postgre에는 다음과 같은 기능이 있습니다.SQL

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"   |
-------------------

'title' 열의 값은 JSON 형식 {"en-US":gasoline", "fr-FR":essence}입니다.결과의 문자열만 반환하려면 큰따옴표를 생략하려면 어떻게 해야 합니까?

->연산자는 a를 반환한다.json결과.던지다text그냥 놔둬요.

->>연산자는 a를 반환한다.text결과.대신 그걸 쓰세요.

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

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

언급URL : https://stackoverflow.com/questions/40928325/remove-double-quotes-from-the-return-of-a-function-in-postgresql