急求用plsql 如何去掉字符串的前后全角和半角空格
1个回答
展开全部
oracle中可以用regexp_replace
select regexp_replace(字段名,'正则表达式','替换目标') from 表
正则表达式:可以用正则语法来写,比如用\s ,这个匹配比较多,包括回车换行等。如果你字段中有其他特殊字符的话,就不能用这个了。也可以直接用 半角空格,全角空格代替,'[半角空格全角空格]'
替换目标:如果你想删除的话,就用‘’就行了。
当然上面的写法,只是select ,没有改变表中的实际数据,如果要改表,请用update
select regexp_replace(字段名,'正则表达式','替换目标') from 表
正则表达式:可以用正则语法来写,比如用\s ,这个匹配比较多,包括回车换行等。如果你字段中有其他特殊字符的话,就不能用这个了。也可以直接用 半角空格,全角空格代替,'[半角空格全角空格]'
替换目标:如果你想删除的话,就用‘’就行了。
当然上面的写法,只是select ,没有改变表中的实际数据,如果要改表,请用update
更多追问追答
追问
这样替换的话会把中间的全半角空格去掉,我中间的全半角空格想保留
追答
你可以用trim函数
select trim('半角空格' from trim('全角空格' from 字段)) from 表
不过,这有一个缺陷,如果字段前后,是纯粹的半角,或者全角,都没关系,
但是如果是半角全角乱七八糟的混合,就不行了。
具体你自己测试一下
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询