我的数据库中有一个列,其中的条目以连字符开头或结尾。我想找到这些行并删除/替换连字符,如果它是字符串中的最后一个或第一个(或两个)字符。
我现在拥有的:
-sample-value-one-
sample-value-two-
-sample-value-three
sample-value-four
这就是我想要实现的目标:
sample-value-one
sample-value-two
sample-value-three
sample-value-four
所以我必须找到以连字符开头或结尾的所有行,如果匹配,则删除连字符,而字符串中的其他连字符应保持不变。
我没有替换一个字符串的问题,但这个任务似乎对我来说很难,所以如果有人能帮助我,我真的很感激。
答案 0 :(得分:2)
可以使用like和case
update my_table
set my_column = case when my_column like '-%' then substr(my_column, 2, LENGTH(my_column)-1 )
when my_column like '%-' then substr(my_column, 1, LENGTH(my_column)-1 )
when my_column like '-%-' then substr(my_column, 2, LENGTH(my_column)-2 )
end
where my_column like '-%'
or my_column like '%-'
or my_column like '-%-'
答案 1 :(得分:2)
假设它只是一个连字符,那么:
# Remove first hyphen
update myTable
set myCol = substr(myCol,2)
where myCol like '-%'
;
# Remove last hyphen
update myTable
set myCol = substr(myCol,1,length(myCol)-1)
where myCol like '%-'
;