在我的表中,V1.5
,1.6
,V1.6.7
的字段很少。我想删除所有字符,只在表中保留数字。
V1.5
应该更改为1.5
V1.6.7
应该更改为1.6.7
1.6
应该保持不变。答案 0 :(得分:0)
要删除所有不是数字或点的内容,可以使用constructor(
public router: Router,
public activatedRoute: ActivatedRoute,
public titleService: Title
) {
router.events
.filter(e => e instanceof NavigationEnd)
.subscribe((event) => {
console.log('title from route data :',
activatedRoute.root.firstChild.snapshot.data['title']);
this.title =
activatedRoute.root.firstChild.snapshot.data['title'];
this.titleService.setTitle(this.title);
})
}
:
regexp_replace()
例如
regexp_replace(the_column, '[^0-9.]', '', 'g')
返回:
with data (version) as (
values
('V1.5'),
('V1.6.7'),
('1.2.3'),
('3.4.5-alpha')
)
select version, regexp_replace(version, '[^0-9.]', '', 'g') as clean_version
from data;
要更改表中的数据,请使用UPDATE语句:
version | clean_version
------------+--------------
V1.5 | 1.5
V1.6.7 | 1.6.7
1.2.3 | 1.2.3
3.4.5-alpha | 3.4.5
update the_table
set the_column = regexp_replace(the_column, '[^0-9.]', '', 'g')
where the_column <> regexp_replace(the_column, '[^0-9.]', '', 'g');
子句可阻止不会更改任何内容的更新。
当然,您需要将where
替换为要更改的真实列名。