如何删除第一个&文字的最后一个字符?

时间:2017-09-28 10:50:32

标签: sql string postgresql text

我有一条记录被转换成这样的文字:

("{""ACC_CODE"":""0/000"",""ACC_DECIMAL"":2}"})

我想删除(),以便将文本转换为json。 我该怎么做?

编辑:我不想使用修剪功能,因为有(&原始文本中的)个字符。

我只想删除first& last字符。

3 个答案:

答案 0 :(得分:6)

你可以这样做:

select substr(col, 2, length(col) - 2)

答案 1 :(得分:3)

t=# select rtrim(ltrim('({()})','('),')');
 rtrim
-------
 {()}
(1 row)

ltrim和rtim不要触摸内部的括号,比如修剪itsel:

t=# select trim('({()})','()');
 btrim
-------
 {()}
(1 row)

答案 2 :(得分:0)

函数regexp_replace()对我有用。

例如删除最后4个字符:

select 
regexp_replace('300PRIZE28NOV20183333\%%3BS\.com', '....$', '') campaign_name;

------------------------------
 300PRIZE28NOV20183333\%%3BS\

(1 row)

-更一般地说,删除最后8个字符。

select 
regexp_replace('300PRIZE28NOV20183333\%%3BS\.com', '.{8}$', '') campaign_name;
      campaign_name       
--------------------------
 300PRIZE28NOV20183333\%%

(1 row)