其实最好从根本上去除这个问题,为什么使用SQL语句会读出空格来,是否在保存数据的时候没有去除空格。你可以使用这几个函数试试:
trim(字符串):去掉字符串当中的前后空格
Ltrim(字符串):去掉字符串当中的左侧空格
Rtrim(字符串):去掉字符串当中的右侧空格
例如:A=trim(" hello ")
结果:A=“hello"
例如:A=Ltrim(" hello ")
结果:A=“hello "
例如:A=Rtrim(" hello ")
结果:A=“ hello"
如果数据在A列,后面插入临时用的B列,
,B2输入
=SUBSTITUTE(A2," ","")
下拉
注意,公式里第一个引号中间输入1个空格(用空格键)
复制B列>右键>选择性粘贴>数值
删除A列,OK
哪个都无所谓,你只要看sql里查询出来的字符的样子,然后照样学样就可以
replace(str,str1,str2)
str是你查询出来的原始数据字符串,
str1是在str中要被替换的字符串,
str2是用来替换str1的字符串
1
如果你想去除列最前面或最后面的空格,用LTRIM或RTRIM函数
2
如果你想去除空格后面的所有字符,如
“1234
qq”
变为
“1234”,可以使用patindex或charindex函数
参考语句:update
表
set
字段
=
SUBSTRING(字段
,1,charindex('
',字段,1)
-
1
)
where
函数说明
如果是文本类型的,只能使用patindex,而且不能指定开始的位置,语法是PATINDEX('%查找的字符%',从那里查找)
如果是字符类型的话,可以用charindex,可以指定开始的位置,语法是charindex('查找的字符',从那里查找,起始位置)
trim:去掉特定字符,默认去前后的空格
select trim(' o r a cle ') from dual;
结果:o r a cle
截去特定字符
select trim('o' from 'o r a cle ') from dual;
结果: r a cle注意r前面有一个空格
oracle中可以用regexp_replace
select
regexp_replace(字段名,'正则表达式','替换目标')
from
表
正则表达式:可以用正则语法来写,比如用\s
,这个匹配比较多,包括回车换行等。如果你字段中有其他特殊字符的话,就不能用这个了。也可以直接用
半角空格,全角空格代替,'[半角空格全角空格]'
替换目标:如果你想删除的话,就用‘’就行了。
当然上面的写法,只是select
,没有改变表中的实际数据,如果要改表,请用update
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)