我有这个:
-asdfj-
-jhbjbhk---kjn
klsjdn-kad-.d-.--.-ask-n-
-sd-kasd-ksjd-nkasjd
我需要这个:
asdfj-
jhbjbhk---kjn
klsjdn-kad-.d-.--.-ask-n-
sd-kasd-ksjd-nkasjd
每当在字符串的第一位出现破折号时,我都希望将其删除,并且第二位的任何内容都应取代它(即第一位)。
答案 0 :(得分:2)
您可以使用LTRIM
或TRIM
字符串函数:
例如:
SELECT LTRIM(column_name, '-') FROM table_name;
SELECT TRIM(LEADING '-' FROM column_name) FROM table_name;
您可以找到带有示例数据的交互式代码:http://sqlfiddle.com/#!15/28e115/6
有关更多详细信息,请参见:
答案 1 :(得分:1)
您可以使用regexp_replace()
:
select regexp_replace(the_column, '^-', '')
from the_table;
正则表达式'^-'
的意思是在字符串开头恰好一个-
。
如果要永久更改表中的数据,可以在UPDATE语句中使用它:
update the_table
set the_column = regexp_replace(the_column, '^-', '');
where the_column ~ '^-';
where
子句可确保仅在发生更改的地方更新那些行。