oracle替换空,replace使用案例--替换空格

本文介绍了一种SQL数据清洗的方法,通过使用SQL语句处理多空格问题,包括去除首尾空格、替换长空格及短空格,确保研究者姓名字段格式统一。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求是这样的:SELECT EID,

RESEARCHER --研究员

FROM NEWSADMIN.REP_BASINFO A

WHERE RESEARCHER NOT LIKE '%,%' AND LENGTH(RESEARCHER)>3

为保持数据格式的统一性,将以上执行出来的结果中人员之间的空格替换成英文状态下的逗号。替换的时候需注意,有些人员之间是两个空格符,避免出现连续两个",,"的情况。

查询后发现,确实存在不少有多空格的情况。

所以分析了下,有几种情况:

1.首尾空格,用trim处理select EID,

RESEARCHER,trim(researcher)from NEWSADMIN.REP_BASINFO A

WHERE RESEARCHER LIKE '% ' or RESEARCHER LIKE ' %' AND LENGTH(RESEARCHER)>3;

2.长空格,用replace处理,突然发现有个外文,steven smith,所以不能直接替换。因为researcher字段是nvarchar2类型,所以不能简单使用lengthb来判断,不过变通下,就可以了。

update NEWSADMIN.REP_BASINFO A

set RESEARCHER=replace(RESEARCHER,' ',',')

WHERE RESEARCHER LIKE '% %' AND LENGTH(RESEARCHER)>3

and length(RESEARCHER)<>lengthb(to_char(RESEARCHER)) ;

update NEWSADMIN.REP_BASINFO A

set RESEARCHER=replace(RESEARCHER,' ',',')

WHERE RESEARCHER LIKE '% %' AND LENGTH(RESEARCHER)>3

and length(RESEARCHER)<>lengthb(to_char(RESEARCHER)) ;

3.短空格,大胆使用replace,再无意外。

update NEWSADMIN.REP_BASINFO A

set RESEARCHER=replace(RESEARCHER,' ',',')

WHERE RESEARCHER LIKE '% %' AND LENGTH(RESEARCHER)>3

and length(RESEARCHER)<>lengthb(to_char(RESEARCHER)) ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值