oracle空格怎么删除,oracle字段去除空格

oracle怎么去掉字符串的空格的数据

首先便是这Trim函数。Trim 函数具有删除任意指定字符的功能,而去除字符串首尾空格则是trim函数被使用频率最高的一种。语法Trim ( string ) ,参数string:string类型,指定要删除首部和尾部空格的字符串返回值String。函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。 如果参数值为null时,会抛出空指针异常。在oracle中,trim使用的形式多为人rtrim()与ltrim()两种,分别为去除字符串右边空格与去除字符串左边空格。

创新互联是一家专注于成都网站设计、网站制作与策划设计,东源网站建设哪家好?创新互联做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:东源等地区。东源做网站价格咨询:18982081108

当然trim的功能不止如此,下面进行细致的介绍,这里我多以去除字符串空格为例。

我们看下trim函数的语法描述:trim( [ { {leading|trailing|both} [trim_character]|trim_character} from] trim_source

1)、不使用任何参数

SQL select trim(' 11 ') aa from dual;

AA

--

11

这是最常见的一种使用方法,都使用默认的参数,默认情况下TRIM会同时删除字符串前后出现的空格。

2)、使用both参数,效果等同于方法一不使用任何参数

SQL select trim(both from ' 11 ') aa from dual;

AA

--

11

“BOTH”参数表示同时去除字符串前后所指定的内容(默认情况下删除空格)。

3)、使用leading与trailing参数

SQL select trim(leading from ' 11 ') aa from dual;

AA

----

11

SQL select trim(trailing from ' 11 ') aa from dual;

AA

-----

11

从结果中得分隔符'-',可以发现使用leading参数可以去除字符串右端的空格,而trailing参数则可以去除字符串左端的空格。正如oracle提供的rtrim()与ltrim()。

4)、使用trim_character参数

trim_character参数改变了“删除空格”的默认行为。如果想要删除字符串'xxxxWORLDxxxx'前后出现的“x”,“trim_character”参数就派上用场了。

SQL select trim('x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA

-----

WORLD

trim_character配合“both”、“trailing”和“leading”三个参数使用效果如下,与之前演示类似。看结果,不赘述。

SQL select trim('x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA

-----

WORLD

SQL select trim(both 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA

-----

WORLD

SQL select trim(trailing 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA

---------

xxxxWORLD

SQL select trim(leading 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA

---------

WORLDxxxx

必须注意的一点是这里的“trim_character”参数只允许包含一个字符,不支持多字符。trim不能满足我们去除多字符要求,但是我们可以使用rtrim和ltrim来处理。

1)使用rtrim

SQL select rtrim('ORxxxxWORLDxxxxOR','OR') aaaaa from dual;

AAAAA

---------------

ORxxxxWORLDxxxx

2)使用ltrim

SQL select ltrim('ORxxxxWORLDxxxxOR','OR') aaaaa from dual;

AAAAA

---------------

xxxxWORLDxxxxOR

3)联合使用RTRIM和LTRIM函数达到我们的目的

SQL select rtrim(ltrim('ORxxxxWORLDxxxxOR','OR'),'OR') aaaaa from dual;

AAAAA

-------------

xxxxWORLDxxxx

使用rtrim和ltrim函数时的注意事项:“OR”不表示整个“OR”字符串进行匹配,而是发现任意的字符“O”或字符“R”均做删除操作。

对于trim函数的应用就介绍到,下面介绍一下replace函数,个人觉得replace函数在去空格时更好用。replace 函数用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。来看下replace函数的语法描述:replace('string_replace1','string_replace2','string_replace3')

'string_replace1' 待搜索的字符串表达式,string_replace1 可以是字符数据或二进制数据。

'string_replace2' 待查找的字符串表达式,string_replace2 可以是字符数据或二进制数据。

'string_replace3' 替换用的字符串表达式,string_replace3 可以是字符数据或二进制数据。

返回类型,如果 string_replace(1、2 或 3)是支持的字符数据类型之一,则返回字符数据;如果 string_replace(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。

这里我们依然以去空格为例。

SQL select replace(' aa kk ',' ','') abcd from dual;

ABCD

----

aakk

与使用trim函数的结果进行对比,我们可以发现,使用replace函数不仅可以去除字符串两端的空格,也可去除字符串内部的空格。

当然,如果只是要去除字符串两端的空格,使用trim函数效率会更高。

oracle数据库去除换行、空格、回车字符

去除换行

update zhzl_address t set t.add_administration_num=replace(t.add_administration_num,chr(10),'');

去掉回车

update zhzl_address t set t.add_administration_num=replace(t.add_administration_num,chr(13),'');

去掉空格

update zhzl_address t set t.add_administration_num=trim(t.add_administration_num);

oracle表字段里类似于tab的长空格怎么去掉

1.首先是去除空格在进行比较(比如,把姓名中的所有空格去除):

Update table_name set xm=replace(xm , ' ') ;

如果要查找哪些记录含有' ',可用相关的语句查找。

然后可进行比较。

2.但是我们可能会发现,有些姓名中间或末尾还有类似空格的字符没被去掉,但它们显然已经不是一般的空格了,那么怀疑是Tab健作怪。于是参照网上说的去掉TAB键的办法来处理,用chr(9)来替代空格键(TAB键的ASCII值为9)。先取一条带有类空格字符的记录来做实验:

SELECT replace(xm, chr(9) ) from table_name where bh=’xxx’;

用这个办法会去掉一些真正的Tab键空格,然后采取批量更新的办法。

3.但我遇到的情况没有这么幸运,没能去掉类空格键。怎么办呢?我决定尝试先取得这个类空格键的ASCII码值,然后再用chr(ASCII码值)的方法来处理。

①.取得含类空格键整个字符串的长度 length(),从而确定出类空格键在字符串中的起始位置、类空格键的长度。

②.求出类空格键的ASCII码值:ascii(substr(xm,n,m)); n为类空格键的起始位置;m为长度。

③.SELECT replace(xm, chr(第②步求得的ASCII码值) ) from table_name where bh=’xxx’;


分享标题:oracle空格怎么删除,oracle字段去除空格
文章路径:http://hbruida.cn/article/heiiei.html