trim函数怎么用的

trim函数怎么用的,第1张

删除字符串首尾的空白(可以首尾一起,也可以指定首或尾,取决于控制参数),但会保留字符串内部作为词与词之间分隔的空格

各种

trim

函数的语法如下:

LTRIM(字串):将字串左边的空格移除。

RTRIM(字串):

将字串右边的空格移除。

TRIM(字串):

将字串首尾两端的空格移除,作用等于RTRIM和LTRIM两个函数共同的结果。

ALLTRIM(字串):将字串左右边两边的空格移除。

例1:

TRIM('

Sample

');

结果:

'Sample'

例2:

LTRIM('

Sample

');

结果:

'Sample

'

例3:

RTRIM('

Sample

');

结果:

'

Sample'

ALLTRIM("

Sample

")

结果:

"Sample"

在oracle中,trim()函数的用法有,leading

开头字符,trailing

结尾字符,both

开头和结尾字符,如下:

trim(leading

||

trailing

||

both

'将要被替换掉的字符"

from

“将要被替换的字符串")

1、trim函数去除指定的开头字符

select

trim(leading

'x'

from

'xday')

as

strTemp

from

tableName

;

2、trim函数去除指定的结尾字符

select

trim(trailing

'x'

from

'dayx')

as

strTemp

from

tableName

;

3、trim函数去除指定的首部和尾部字符

select

trim(both

'x'

from

'xdayx')

as

strTemp

from

tableName

;

4、默认情况下,trim函数会去除首部和尾部,被指定的字符

select

trim('x'

from

'xdayx')

as

strTemp

from

tableName

;

5、如果没有指定被移除的字符,则会默认去除首部和尾部的空格

select

trim('

day

')

as

strTemp

from

tableName

;

SELECT ggname,NVL(音乐,0)音乐,NVL(美术,0)美术,NVL(数学,0)数学 FROM (

SELECT ggggname,ggkcn,ggcj FROM gg)

pivot(SUM(cj) FOR kcn IN('音乐'音乐,'美术'美术,'数学'数学))

--其他科目自己添加

废话不多说了,直接给大家贴代码了,具体代码如下所示:

create

or

replace

procedure

PROC_test

is

--Description:删除字段中的指定字符(回车chr(13)、换行chr(10))

--By

LiChao

--Date:2016-03-01

colname

varchar(20);

--列名

cnt

number;

--包含换行符的列的行数

v_sql

varchar(2000);

--动态SQL变量

begin

--读取表中的列

for

col

in

(select

column_name

from

user_tab_columns

where

table_name

=

'TEMP')

loop

colname

:=

colcolumn_name;

--替换换行符chr(10)

v_sql

:=

'select

count(1)

from

temp

where

instr('

||

colname

||

',chr(10))>0

';

EXECUTE

IMMEDIATE

V_SQL

into

cnt;

if

cnt

>

0

then

v_sql

:=

'update

temp

set

'

||

colname

||

'=trim(replace('

||

colname

||

',chr(10),''''))'

||

'where

instr('

||

colname

||

',chr(10))>0

';

EXECUTE

IMMEDIATE

V_SQL;

commit;

end

if;

--替换回车符chr(13)

v_sql

:=

'select

count(1)

from

temp

where

instr('

||

colname

||

',chr(13))>0

';

EXECUTE

IMMEDIATE

V_SQL

into

cnt;

if

cnt

>

0

then

v_sql

:=

'update

temp

set

'

||

colname

||

'=trim(replace('

||

colname

||

',chr(13),''''))'

||

'where

instr('

||

colname

||

',chr(13))>0

';

EXECUTE

IMMEDIATE

V_SQL;

commit;

end

if;

--替换'|'

chr(124)

为''

chr(42)

v_sql

:=

'select

count(1)

from

temp

where

instr('

||

colname

||

',chr(124))>0

';

EXECUTE

IMMEDIATE

V_SQL

into

cnt;

if

cnt

>

0

then

v_sql

:=

'update

temp

set

'

||

colname

||

'=replace('

||

colname

||

',chr(124),chr(42))'

||

'where

instr('

||

colname

||

',chr(124))>0

';

EXECUTE

IMMEDIATE

V_SQL;

commit;

end

if;

end

loop;

end

PROC_test;

/

以上所述是小编给大家介绍的Oracle删除字段中的空格、回车及指定字符的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果to_char的前面的参数的长度和后面参数的长度不一致,就会出现空格,这种情况下:

可以通过oracle的trim方法来删除前面出现的空格。

sql:

select to_char('11111','999999') from dual;

执行结果:“ 11111”;

select trim(to_char('11111','999999')) from dual;

执行结果:“11111”。

1、创建测试表,

create table test_huiche(id varchar2(20), value varchar2(20));

2、插入测试数据,部分值含回车换行符;

insert into test_huiche values(1, 'ab

c');

insert into test_huiche values(2,'ed');

insert into test_huiche values(3,'ffg');

insert into test_huiche values(4,'hj

k');

commit;

3、查询表中全量数据,可以发现部分值含回车换行符;select t, rowid from test_huiche t;

4、编写语句,去掉数据后的回车换行符;

   select tid, replace(replace(tvalue,chr(9),''),chr(10),'') as value from test_huiche t;

不会自动去掉的,如果想要去掉可以使用以下的方法:

insert into 表名 (列名) values (replace(列值, chr(32), ''));

chr(32)是空格的意思,因为空格的ascii码是32

同样,如果要去回车或其他特殊字符的话只需要吧chr中的数字改成对应的ascii码即可。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12155487.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存