我有一条记录被转换成这样的文本:
("{""ACC_CODE"":""0/000"",""ACC_DECIMAL"":2}"})
我想删除
(
和 )
以便我可以将文本转换为 json。
我该怎么做?
编辑:我不想使用修剪功能,因为原文中有
(
& )
字符。
我只想删除
first
和 last
字符。
你可以这样做:
select substr(col, 2, length(col) - 1)
t=# select rtrim(ltrim('({()})','('),')');
rtrim
-------
{()}
(1 row)
ltrim 和 rtim 不接触里面的括号,就像修剪它本身一样:
t=# select trim('({()})','()');
btrim
-------
{()}
(1 row)
从字符串中删除第一个字符
select substr(col, 2)
从字符串中删除最后一个字符
select substr(col,1, length(col)-1)
select reverse(substr(reverse(col),2)
函数 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)